【发布时间】:2014-03-20 03:59:23
【问题描述】:
首先,我使用的是 .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 调用并等待该响应。
【问题讨论】:
-
为此你为什么不使用 Jquery ajax 调用?
标签: c# asp.net-mvc multithreading .net-4.0