【发布时间】:2018-02-24 19:03:03
【问题描述】:
团队, 我有一个包含四个部分视图的视图,这些数据是独立的,因此需要异步加载它们。 Div 形成为 -
<div class="col-md-6 partialContent" data-url="/Dashboard/PartialView1">
</div>
<div class="col-md-6 partialContent" data-url="/Dashboard/PartialView2">
</div>
控制器动作是。 (添加 thread.speep 以检查是否在 div.load 调用后等待或处理另一个方法)
public PartialViewResult PartialView1()
{
PartialView1ViewModel dcVM = new PartialView1ViewModel();
// business logic code is here
Thread.Sleep(5000);
return PartialView("~/Views/Charts/_PartialView1.cshtml", dcVM);
}
public PartialViewResult PartialView2()
{
PartialView1ViewModel dcVM = new PartialView1ViewModel();
// business logic code is here
return PartialView("~/Views/Charts/_PartialView2.cshtml", dcVM);
}
最后,将数据加载到 div 中 -
$(".partialContent").each(function (index, item) {
var url = $(item).data("url");
if (url && url.length > 0) {
$(item).load(url);
}
});
所以在这种情况下,我们期望这两个方法都应该立即被调用,但它会等到第一个方法处理完成。
我们如何在不等待其他操作完成的情况下异步加载所有这些部分视图?
你能提示/指导吗?
【问题讨论】:
-
所以你的意思是先渲染PartialView1然后渲染partialView 2?
-
是的,这就是现在发生的事情。我们可以并行吗?
标签: c# jquery asp.net-mvc asynchronous