Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MVC6 EF7 Viewcomponent ajax刷新问题_Ajax_Asp.net Mvc_Asp.net Core Mvc - Fatal编程技术网

MVC6 EF7 Viewcomponent ajax刷新问题

MVC6 EF7 Viewcomponent ajax刷新问题,ajax,asp.net-mvc,asp.net-core-mvc,Ajax,Asp.net Mvc,Asp.net Core Mvc,关于。我无法让ajax在MVC6中刷新。JavaScript容器会找到Div值,但数据不会更新。任何想法都将不胜感激 ViewComponent-Default.cshtml: @model IEnumerable<My.Models.Queue> @foreach (var item in Model) { @item.Queue } 您不能直接向视图组件发出Ajax请求,但您可以从任何控制器的方法调用它,就像您在问题中提到的那样 因此,您应该创建一个简单的控制器方法,如:

关于。我无法让ajax在MVC6中刷新。JavaScript容器会找到Div值,但数据不会更新。任何想法都将不胜感激

ViewComponent-Default.cshtml:

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

您不能直接向视图组件发出Ajax请求,但您可以从任何控制器的方法调用它,就像您在问题中提到的那样

因此,您应该创建一个简单的控制器方法,如:

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

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

谢谢Sami Kuhmonen。我试试这个。我只是用JavaScript刷新了整个窗口,而不仅仅是数据组件。
public IActionResult QueueViewComponent()
{
    return ViewComponent("QueueViewComponent");
}
var container = $("#queueComponentContainer");
var refreshComponent = function () {
    $.get("/Home/QueueViewComponent", function (data) { container.html(data); });
};

$(function () { window.setInterval(refreshComponent, 1000); });