【问题标题】:How to auto refresh a partial view?如何自动刷新局部视图?
【发布时间】:2017-05-04 02:53:00
【问题描述】:

如何自动刷新局部视图?

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

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

【问题讨论】:

  • 你应该考虑使用SignalR
  • 谢谢。我会试一试的。
  • 请不要破坏您的问题。

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


【解决方案1】:

Html.Action("Messages","Chat", new { people="give some data"})

【讨论】:

  • 请用描述编辑您的代码块。谢谢。
【解决方案2】:

为了快速测试,将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

【讨论】:

  • 如何在您提供的脚本中指定要更新的 div?就我而言,这个 div
  • @YangDota 请看我的编辑。抱歉,我以为你知道该怎么做。首先将一些静态数据发送到您的 div 非常重要,例如 $("#divLt").html("<p>It works</p>"); 中的 sucess。这只是为了测试它是否有效。
猜你喜欢
相关资源
最近更新 更多
热门标签