Uygulamam MVC 3, .net kullanılarak gerçekleştirilmiştir. Bir düğmeye tıklama ile bir excel dosyası oluşturmaya çalışıyorum. Denetleyici eylemine yapılan çağrı Ajax kullanılarak yapılır. Başlıca sorunum: Dosya oluşturma sırasında, kullanıcının devam eden işlemi bilmesi için ekranda bir görüntü göstermeye çalışıyorum. Görüntüyü çok iyi görüntüleyebilirim ancak işlem tamamlandıktan sonra gizleyemiyorum. codei kullanıyorum geçerli:Denetleyici eylemi tamamlandıktan sonra Javascript'i kullanarak görüntüyü gizleme MVC3
Javascript kodu:
$("input.DownloadExcelReport").click(function (e) {
e.preventDefault();
var parameter = -- code to fetch parameter value;
var outputViewUrl = (the url is created here);
showLoading(); -- This function displays the image
window.location.href = outputViewUrl;
});
Kontrolör Eylem kodu:
public ActionResult DownExcelReportForAssortment(Guid parameter)
{
try
{
//the contents for the file generation are fetched here..
// Write contents to excel file
if (memoryStream != null)
{
var documentName = "Report.xls";
byte[] byteArrary = memoryStream.ToArray();
return File(byteArrary, "application/vnd.ms-excel", documentName);
}
}
catch (Exception ex)
{
LogManager.LogException(ex);
}
}
Ben kodu yazabilirsiniz javascript yöntem çağrısı için Json sonuç döndürmüyor resmi sakla. Kullanıcı tarafından kaydedilebilecek bir dosya döndürüyorum ve işlem tamamlandı.
Dosya üretme işlemi tamamlandığında görüntüyü nasıl gizleyebilirim?
yardım için teşekkür ederiz
...
Çerez sorunlarından kaçınmak için, bunu bir oturum değişkeni kullanarak ele almayı tercih ediyorum. Böylece, Eylem Değişkenini eyleminizdeki uzun süren koddan sonra ayarlarsınız ve jsinizde benzer bir yoklama komut dosyası kullanırsınız, bu da ajax isteklerini oturumu denetleyip kontrol etmediğini kontrol eden başka bir eyleme gönderir. Eğer yaparsa, oturumu öldürür ve js geri çağırmasına 'gerçek' bir cevap verir ve yükleyicinizi kapatırsınız. –