参考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); });
答案 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); });
主页是控制器的新创建方法的名称。