2017-06-15 10 views
0

完了までに数秒かかる機能があります。別のスレッドでタスクを完了した後、Resultビューをブラウザにロードします。それまではブラウザに読み込み用のGIFを表示したいと思っていました。コントローラーメソッドが完了するまで 'gif'を表示する方法+ ASP.Net MVC

はこれがどのように私のコントローラメソッド

public ActionResult evaluateBulk(string year, string exam, string centre, string course, string batch) 
    { 
     string path = Directory.GetCurrentDirectory() + @"\" + year + @"\" + exam + @"\" + centre + @"\" + course + @"\" + batch + @"\"; 
     string[] listOfImages = getAllFiles(path); 

     var th = new Thread(processImages); 
     th.Start(listOfImages); 
     th.Join(); 

     return View("Result"); 
    } 

これは、上記のコントローラメソッドがビューから呼び出される方法ですResultまで表示するには、このビューにロードするGIFを統合する方法

 function evaluateBulk() { 

     var year = $("#year option:selected").val(); 
     var exam = $("#exam option:selected").val(); 
     var centre = $("#centre option:selected").val(); 
     var course = $("#course option:selected").val(); 
     var batch = $("#batch option:selected").val(); 

     $.ajax({ 
      async: true, 
      url: "evaluateBulk", 
      data: { year: year, exam: exam, centre: centre, course: course, batch: batch }, 
      cache: false, 
      dataType: "json", 
      success: function (data) { 
       alert("Done"); 
      }, 
      error: function (xhr, textStatus, errorThrown) { 
       alert(errorThrown); 
      } 
     }); 
    } 
ビューにはメソッドの結果がロードされます。

ありがとう

+1

が問題の答えではない、あなたのAjaxコード変更にローダイメージを追加しますか? ajaxクエリを作成したときにイメージを表示し、完了したら非表示にします。 – stuartd

答えて

1

はあなたのコード

<div id="loadingImg" style="display:none;"> 
<img src="loading.gif"/> 
</div> 

$('#loadingImg').show(); 
    $.ajax({ 
     async: true, 
     url: "evaluateBulk", 
     data: { year: year, exam: exam, centre: centre, course: course, batch: batch }, 
     cache: false, 
     dataType: "json", 
     success: function (data) { 
      alert("Done"); 
     }, 
     complete: function(){ 
     $('#loadingImg').hide(); 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      alert(errorThrown); 
     } 
    }); 
関連する問題