如何自动刷新局部视图?

时间:2016-12-19 05:12:39

标签: javascript html ajax asp.net-mvc-5 asp.net-ajax

如何自动刷新部分视图?

public PartialViewResult Chat(string people)
    {
        if (User.Identity.IsAuthenticated)
        {
            var model = new MessageVM()
            {                          
                realReceiver = people,              
                messageList = db.messages.Where(x => x.sender == User.Identity.Name || x.sender == people).ToList().Take(30)
            };
            return PartialView("_Chat", model);

如何自动刷新此部分视图

2 个答案:

答案 0 :(得分:0)

Html.Action(“Messages”,“Chat”,new {people =“给出一些数据”})

答案 1 :(得分:0)

要快速测试,请将Chat的控制器操作从POST更改为GET。然后通过粘贴浏览器地址栏中的地址来调用它。您可以在网址末尾包含people参数的值:

?people=valueForPeople

检查返回的HTML并确保这是您所期望的。确认操作返回所需的HTML后,如果您愿意,可以更改回POST。然后使用下面的jQuery代码。

一个选项是在客户端设置一个定时器,它将调用您的控制器,然后您可以使用返回的数据执行任何操作。

window.setInterval(function() {

    // send get request to server
    $.ajax({
    url: '/Chat',
    type: "POST", // or use GET
    data: whateverYourArgumentsAre, // people
    success: function (partialViewHtml) {
        $("#divLt").html(partialViewHtml);
        });
    },
    error: function () {
        alert('Something went wrong');
    }

});
}, 5000); // Every 5 seconds, 5000 ms