我在View中使用ajax调用来加载PartialView
中的数据而不阻止UI。
$(function() {
$.get( '@Url.Action("MyFunction", Model)', function( data ) {
$("#partialContainer").html(data);
});
}
Controller
代码非常简单,Task.Delay
将替换为对Web服务的另一个长时间运行调用:
public ActionResult MyFunction(MyFunctionModel model)
{
for (int i = 0; i < 4; i++) {
Task.Delay(4000).Wait();
}
return PartialView("PartialView", model);
}
我想做的是:
public ActionResult MyFunction(MyFunctionModel model)
{
for (int i = 0; i < 4; i++) {
Task.Delay(4000).Wait();
yield return PartialView("PartialView", model);
}
}
但我知道我无法将yield
运算符与ActionResult
一起使用。
编辑:最后的想法是每次有什么东西加起来时显示结果,让我们像飞行搜索引擎那样说,而不是等待完整的元素列表。