En referencia a la alternativa de Viewcomponent para la actualización de ajax . No puedo hacer que ajax se actualice en MVC6. El contenedor de JavaScript encuentra el valor Div pero los datos no se actualizan. ¡Cualquier idea sería apreciada!
ViewComponent - Predeterminado.cshtml:
@model IEnumerable<My.Models.Queue> @foreach (var item in Model) { @item.Queue }Índice.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); });No puede realizar una solicitud de Ajax directamente al ViewComponent , pero puede invocarlo desde cualquier método de Controller como se describe en la publicación que mencionó en su pregunta.
Por lo tanto, debe crear un método de controlador simple como:
public IActionResult QueueViewComponent() { return ViewComponent("QueueViewComponent"); }Y llámalo desde tu JavaScript:
var container = $("#queueComponentContainer"); var refreshComponent = function () { $.get("/Home/QueueViewComponent", function (data) { container.html(data); }); }; $(function () { window.setInterval(refreshComponent, 1000); });Donde Home es el nombre de un controlador de su método recién creado.