我需要定期刷新.Net的局部视图。它正在使用Ajax.ActionLink,是否有类似的定期刷新功能?我可以不使用jQuery吗?
答案 0 :(得分:12)
Zen,您可以通过以下代码来实现:
function loadPartialView() {
$.ajax({
url: "@Url.Action("ActionName", "ControllerName")",
type: 'GET', // <-- make a async request by GET
dataType: 'html', // <-- to expect an html response
success: function(result) {
$('#YourDiv').html(result);
}
});
}
$(function() {
loadPartialView(); // first time
// re-call the function each 5 seconds
window.setInterval("loadPartialView()", 5000);
});
记住你的Action应该返回一个PartialView。 我希望它可以帮到你!
答案 1 :(得分:2)
也许this可以帮到你。您使用的是哪个版本的MVC?您可以为辅助方法设置指定的时间间隔。这是我在不使用js的情况下看到的唯一方法。
答案 2 :(得分:0)
试试这个。
$(document).ready(function () {
var url = "@(Html.Raw(Url.Action("ActionName", "ControllerName")))";
$("#PartialViewDivId").load(url);
setInterval(function () {
var url = "@(Html.Raw(Url.Action("ActionName", "ControllerName")))";
$("#PartialViewDivId").load(url);
}, 30000); //Refreshes every 30 seconds
$.ajaxSetup({ cache: false }); //Turn off caching
});
它进行初始调用以加载div,然后后续调用的间隔为30秒。
在控制器部分,您可以更新对象并将对象传递给局部视图。
public class ControllerName: Controller
{
public ActionResult ActionName()
{
.
. // code for update object
.
return PartialView("PartialViewName", updatedObject);
}
}