[英]How to load data using thread in ASP.Net MVC?
首先,我正在使用.Net framework 4,因此,我現在還不能使用Async / Await(是的,我知道,我應該升級到vs 2013)。
無論如何,請看下面的簡單代碼:
public ActionResult Index()
{
HomeViewModel model = new HomeViewModel();
var worker = new BackgroundWorker();
worker.DoWork += (s, e) =>
{
model.ItemsToDisplay = SlowProcessList();
};
return View(model);
}
public static List<string> SlowProcessList()
{
List<string> strList = new List<string>();
strList.Add("First Item");
Thread.Sleep(3000);
strList.Add("Second Item");
Thread.Sleep(3000);
strList.Add("Third Item");
Thread.Sleep(3000);
return strList;
}
視圖:
@foreach (var item in Model.ItemsToDisplay)
{
<p>@item</p>
}
如您所見,我想先返回視圖,然后將數據加載到后台,並在可用時將其顯示在表單上。 誰能指導我正確的方向?
我在想解決此問題的正確方法是:在PageLoad上進行Ajax調用並等待該響應。
在HTTP中,您只能發送一次響應。
您無法發送大部分響應,然后讓服務器繼續在后台工作以稍后發送更多數據。
但這沒關系,因為您的下一個想法是正確的。 解決此問題的方法是使用javascript讓客戶端發送更多請求,從而獲取更多數據。
我個人使用AngularJS 。 讓我們看看它是如何工作的。
您需要閱讀一些有關AJAX的工作原理以及解決此問題的最佳方法的信息。 我的方法比jQuery駭客要復雜得多,但是它更具可維護性和組織性(不是jQuery的忠實粉絲)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.