【问题标题】:MVC6 EF7 Viewcomponent ajax refresh issuesMVC6 EF7 Viewcomponent ajax 刷新问题
【发布时间】:2016-02-10 19:38:21
【问题描述】:

参考Viewcomponent alternative for ajax refresh。我无法让 ajax 在 MVC6 中刷新。 JavaScript 容器找到了 Div 值,但数据没有更新。任何想法将不胜感激!

ViewComponent - Default.cshtml:

@model IEnumerable<My.Models.Queue>
@foreach (var item in Model)
{
  @item.Queue
}

Index.cshtml:

<div id="Queue" class="blink">@Component.Invoke("Queue")</div>

javascript:

var container = document.getElementById("Queue");
var refreshComponent = function () {
$.get("Shared/Components/Queue", function (data) { container[data]; });};
$(function () { window.setInterval(refreshComponent, 1000); });

【问题讨论】:

    标签: ajax asp.net-mvc asp.net-core-mvc


    【解决方案1】:

    您不能直接向 ViewComponent 发出 Ajax 请求,但您可以从任何 Controller 的方法调用它,就像您提到的 post 中描述的那样在你的问题中。

    所以你应该创建一个简单的Controller方法,比如:

    public IActionResult QueueViewComponent()
    {
        return ViewComponent("QueueViewComponent");
    }
    

    然后从你的 JavaScript 中调用它:

    var container = $("#queueComponentContainer");
    var refreshComponent = function () {
        $.get("/Home/QueueViewComponent", function (data) { container.html(data); });
    };
    
    $(function () { window.setInterval(refreshComponent, 1000); });
    

    HomeController 的新创建方法的名称。

    【讨论】:

    • 谢谢萨米·库莫宁。我会试试这个。我一直在用 JavaScript 刷新整个窗口,而不仅仅是数据组件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 1970-01-01
    相关资源
    最近更新 更多