如何在绘制后更新MVC视图?

时间:2013-09-09 21:19:04

标签: asp.net-mvc response.write

如何在显示视图的主要部分后将输出添加到ASP.NET视图?如果你愿意,可以选择“实时”。以下类型的工作,我在睡眠之间立即获得每一行输出,但在页面顶部输出所有Response.Write测试,而不是在整体布局中输出已绘制视图的一部分。并且直到消息之后我才会获得主要的View数据。我看过类似的问题而且SignalR看起来有点过分而且我不需要轮询,我只想添加一些立即输出,因为我在通常需要30秒的时间内提出它,但是想要绘制其余的首先查看,以便在生成时将输出附加到末尾。想法赞赏。感谢。

这是我的控制器:

    [HttpGet]
    public ActionResult MyView()
    {
        return View();
    }

这是我的观点:

@{Layout = "~/Views/Shared/_SplitterLayout.cshtml";}

@using (Html.BeginForm())
{
  <div class="Clear">
      <p>This rest of this page should show loading data from Excel as it happens.</p>
  </div>
  <div>
      @Html.Partial("MyPartialView")
  </div>
}

这是我的PartialView:

@{
Response.Flush();
Response.Write("<br/>Started.");
Response.Flush();

Response.Write("<br/>Waiting 2 seconds...");
Response.Flush();
System.Threading.Thread.Sleep(2000);

Response.Write("<br/>Waiting 2 seconds...");
Response.Flush();
System.Threading.Thread.Sleep(2000);

Response.Write("<br/>Finished.");
Response.Flush();

}

1 个答案:

答案 0 :(得分:1)

尽可能多地输出视图。

使用AJAX请求长时间加载数据并使用JavaScript客户端编写输出。

有很多框架可以帮助你做到这一点。您甚至可以让AJAX请求加载局部视图,只需将响应写入div的内容。