MVC6 EF7 Viewcomponent ajax刷新问题

时间:2016-02-10 19:38:21

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

参考Viewcomponent alternative for ajax refresh。我无法在MVC6中刷新ajax。 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); });

1 个答案:

答案 0 :(得分:4)

您不能直接向 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); });

主页控制器的新创建方法的名称。