Razor Pages - можно ли перейти к компоненту представления для обновления AJAX

Контекст:

У меня есть часть представления, которую я хочу регулярно обновлять через JS.

Что я уже сделал:

Использование информации, приведенной в: Альтернатива Viewcomponent для обновления ajax

  • создал компонент представления, который инкапсулирует область, которую я хочу обновить
  • попытался создать собственный маршрут к компоненту представления следующим образом

options.Conventions.AddPageRoute("/Components/ViewComponent/default", "FriendlyRouteAlias");

  • используйте следующий сценарий, чтобы попытаться загрузить (обновленный) компонент представления и ввести значение в div:

<script>
    var container = $(".DataToUpdate");
    var refreshComponent = function () {
        $.get("Route/to/view/component", function (data) { container.html(data); });
    };

    $(function () { window.setInterval(refreshComponent, 1000); });
</script>

Можно ли загрузить компонент представления таким образом, или я должен искать другой способ сделать это?


person everette    schedule 22.03.2019    source источник
comment
Вы пробовали поместить компонент представления в представление и вернуть его из действия в контроллере? Затем, когда у вас есть представление, вы можете установить его как содержимое тега, например, div.   -  person Jonathan Alfaro    schedule 22.03.2019
comment
Создайте контроллер WebAPI и вызовите его через AJAX.   -  person Brad Patton    schedule 22.03.2019


Ответы (1)


Как предположили комментаторы, я смог заставить его работать, используя действие контроллера MVC, чтобы напрямую вернуть компонент представления. Я добавлю, что я использовал контроллер MVC, а не контроллер API, потому что имел дело с представлением, а не с данными. (см. Разница между ApiController и контроллером в ASP.NET MVC )

person everette    schedule 23.03.2019