c# - 使用 ASP.NET MVC 3 连续刷新局部 View

标签 c# ajax asp.net-mvc-3 partial-page-refresh

我正在使用 ASP.NET MVC 3 开发一个网站。

我有很多栏目包含来自不同部门的新闻,如下图所示:

http://i.stack.imgur.com/G21qi.png

这些部分通过使用添加到母版页

@Html.Action("_News", "Home", new { id = 1 })

其中 id 1 = "Ledelsen",2 = "Omstillingen"等等。

我的 Controller 包含以下操作:

[ChildActionOnly]
public ActionResult _News(int id)
{
    // controller logic to fetch correct data from database
    return PartialView();
}

我启动并运行了 CRUD,但我的问题是如何在没有回发的情况下以设定的时间间隔刷新 PartialView?

我想我必须使用 Javascript/jQuery 来完成这个,但我没能做到。

谁能给我指出正确的方向或更好的方向,提供一个如何做到这一点的例子?

提前致谢

编辑:澄清一下,我不想刷新整个页面,而是只对部分 View 进行异步刷新

最佳答案

在您的局部 View 中,我建议将整个东西包装在一个 div 中:

<div id="partial1">

在 javascript 中,您需要一个函数来使用 AJAX 将部分 View 加载到 div 中:

$("#partial1").load("_News", { id="1"} );

那是使用 jQuery。一些文档 here .基本上,这将用调用您的 _News 操作生成的 View 替换指示的 div。如果您向 javascript 调用添加一些逻辑,则 ID 可以变化。

然后将对 load() 的调用包装在 setTimeout() 中:

var t = setTimeout(function () {$("#partial1").load("_News", { id="1"} );}, 60000);

这将每 60 秒运行一次包含的函数。可以使用 t,因此 clearTimeout(t) 可以在您的 javascript 代码中的任何位置停止自动刷新。

编辑

这应该可以解决缓存问题。感谢@iko 的建议。我注意到您需要 cache: false 才能正常工作。

var t = setTimeout(function () { $.ajax({ 
                                     url: "_News", 
                                     data: { "id": "1" }, 
                                     type: "POST", 
                                     cache: false, 
                                     success: function (data) { 
                                          $("#partial1").innerHTML = data; 
                                     }}); }, 60000);

关于c# - 使用 ASP.NET MVC 3 连续刷新局部 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170698/

相关文章:

c# - WebBrowser 控件更改属性

c# - 远程服务器返回错误 : (500) Internal Server Error

c# - 字符串缺少终止符 : "

javascript - AJAX 到 asmx (VB) web 方法 - 带参数的 GET

php - 菜单栏通知徽章更新问题

jquery - 捕获 jQuery 添加的类上的单击事件

asp.net-mvc-3 - Ninject、Bind 应该是 .InRequestScope() 或 .InSingletonScope()

c# - 如何从任务异步返回 WCF 响应中的流?

css - 如果调整页面大小,左侧菜单有拥抱间隙

asp.net - ELMAH 未在 MVC3 中显示原始 ASP.NET 错误页面