2009-12-10 161 views
0

在我的控制器类中,我将一些数据返回到我的视图中,并且都很好。MVC:如何刷新视图

我可以这样做吗?

public ActionResult List() 
    { 
     while (true) 
     { 

      Thread.Sleep(3000); 

      return View("ListStatus", data); 
     } 

    } 

当然,上面的代码不会像return语句运行时存在的函数那样工作。

我敢肯定,我可以使用一些Ajax在查看自己从服务器获取数据了,每3秒但我现在的目的,这将是更容易做到什么,我试图在上面的代码

+0

见[此答案](http://stackoverflow.com/questions/5396282/auto-refresh-in-asp-net-mvc/5396312#5396312)到以后的问题。 – 2011-06-05 15:36:45

回答

5

看来你正试图从服务器端进行刷新。就像将更新推送给客户端一样。这不是asp.net的工作方式。客户端发出请求,然后服务器发送响应。这一点意味着你不能做到上述。

就像jcm说的那样,您需要让客户端/浏览器对更新后的数据进行后续请求。

我会建议一个js/ajax/jQuery选项。你可以谷歌和一堆例子。

+0

这不是网络的工作方式,更不用说asp.net了。 – darasd 2009-12-10 09:19:41

+0

从技术上讲,您可以保持连接打开并随时间不断向其添加数据。但这是高度依赖于浏览器的行为,而不是您想要做的事情(至少在今天的技术中,请参阅HTML5 Websockets)。如果你想要一个持久连接使用flash,一个java小程序或silverlight。 – Matt 2009-12-10 09:30:54

+0

Websockets真的听起来像是一个很好的未来方式。 (未来以粗体显示)http://dev.w3.org/html5/websockets/。这个草稿昨天出来了。 – 2009-12-10 10:46:06