gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 13:50:32 25 4
gpt4 key购买 nike

我正在使用 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com