Обновление PartialView с помощью контроллера Post action - PullRequest
0 голосов
/ 10 июня 2019

Мы создали индексное представление, которое содержит форму и таблицу, определенную в отдельном частичном представлении.Когда страница запускается, табличное представление получает свои данные из модели представления и корректно отображает с помощью следующей команды бритвы, которая передает необходимые данные в частичное представление:

@await Html.PartialAsync("_TablePartialView", Model.TableData)

Когдапользователь использует форму для поиска определенных критериев, таких как номер или электронная почта, поисковый запрос передается нашему контроллеру с помощью метода Post.Контроллер правильно получает требуемые данные и возвращает их обратно в представление с помощью:

[HttpPost]
public IActionResult Index(SearchDto search){
  TableData data = getData(search);

  return PartialView("_TablePartialView", data);
}

Однако вместо обновления частичного представления внутри страницы индекса он перезагружает всю страницу.Как получить обновление только таблицы внутри частичного представления?

Мне уже удалось обновить страницу с помощью вызова ajax, заключив частичное представление в теги div:

<div id="tablePartial">
  @await Html.PartialAsync("_TablePartialView", Model.TableData)
</div>

А затем изменить теги div с помощью JQuery, вызвав контроллер через javascript, а затем вручную установив теги div с помощью: $ ("# tablePartial"). Html (data);

Но это выглядит очень"хакер" для меня.Может ли это быть правильным подходом MVC к этой проблеме?

Если возможно, я бы хотел, чтобы моя форма отправляла запрос 'post' нашему контроллеру, а затем только обновляла "_TablePartialView"

...