产生异步结果到ASP PartialView

时间:2017-05-09 05:27:50

标签: c# asp.net asp.net-mvc async-await yield

我在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一起使用。

编辑:最后的想法是每次有什么东西加起来时显示结果,让我们像飞行搜索引擎那样说,而不是等待完整的元素列表。

1 个答案:

答案 0 :(得分:1)

您需要实施SingalRlong polling

如果您需要按照提及的航班结果逐步更新您的用户界面。