定期刷新局部视图(ASP.Net MVC)

时间:2011-07-28 14:55:35

标签: asp.net asp.net-mvc

我需要定期刷新.Net的局部视图。它正在使用Ajax.ActionLink,是否有类似的定期刷新功能?我可以不使用jQuery吗?

3 个答案:

答案 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);
    }
}