如何自动刷新局部视图?

How to auto refresh a partial view?

如何自动刷新局部视图?

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);

如何自动刷新这个局部视图

Html.Action("Messages","Chat",新{人="give some data"})

为了快速测试,将 Chat 的控制器操作从 POST 更改为 GET。然后通过将地址粘贴到浏览器地址栏中来调用它。您可以在 URL 的末尾包含 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