【问题标题】:MVC: How to refresh a viewMVC:如何刷新视图
【发布时间】:2009-12-10 06:36:14
【问题描述】:

在我的控制器类中,我将一些数据返回到我的视图中,一切都很好。

我可以这样做吗?

    public ActionResult List()
    {
        while (true)
        { 

            Thread.Sleep(3000);

            return View("ListStatus", data);
        }

    }

当然上面的代码是行不通的,因为当return语句运行时,函数就存在了。

我确信我可以在视图本身中使用一些 Ajax 每 3 秒从服务器上提取数据,但就我目前的目的而言,在上面的代码中执行我正在尝试的操作会更容易

【问题讨论】:

标签: c# asp.net-mvc ajax


【解决方案1】:

您似乎正在尝试从服务器端进行刷新。就像将更新“推送”到客户端一样。这不是 asp.net 的工作方式。客户端发出请求,然后服务器发送响应。仅此一项就意味着您无法做到以上几点。

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

我建议使用 js/ajax/jQuery 选项。你可以谷歌并获得大量示例。

【讨论】:

  • 从技术上讲,您可以保持连接打开并随着时间的推移不断向其附加数据。但这是高度依赖于浏览器的行为,而不是您想要做的事情(至少对于今天的技术,请参阅 HTML5 Websockets)。如果您想要持久连接,请使用 flash、java 小程序或 silverlight。
  • Websockets 听起来确实是未来的好方法。 (未来以粗体显示)dev.w3.org/html5/websockets。这个草稿昨天出来了。
【解决方案2】:

如果要刷新整个页面,请在标题中使用元标记<meta http-equiv="refresh"

如果要刷新部分页面,请使用 jquery 解决方案。
Auto-refreshing div with jQuery - setTimeout or another method?
http://dev.kafol.net/2008/10/jquery-update-divs-html-dynamically.html
http://docs.jquery.com/Ajax

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-16
    • 2010-12-03
    • 1970-01-01
    • 2016-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多