MVC:如何刷新视图

时间:2009-12-10 06:36:15

标签: c# asp.net-mvc ajax

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

我可以这样做吗?

    public ActionResult List()
    {
        while (true)
        { 

            Thread.Sleep(3000);

            return View("ListStatus", data);
        }

    }

当然,上面的代码将无效,因为在运行return语句时函数存在。

我确信我可以在View中使用一些Ajax来每3秒从服务器中提取数据但是出于我目前的目的,我在上面的代码中尝试做的事情会更容易

2 个答案:

答案 0 :(得分:5)

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

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

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

答案 1 :(得分: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