Мы создали индексное представление, которое содержит форму и таблицу, определенную в отдельном частичном представлении.Когда страница запускается, табличное представление получает свои данные из модели представления и корректно отображает с помощью следующей команды бритвы, которая передает необходимые данные в частичное представление:
@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"