AspNet Core и Ajax - как передать-получить экземпляр класса
Имею безформенный контейнер IndexContainer.cshtml, в котором имеется шаблон Ajax-запроса:
<form asp-action="_EditSchool" id="id_EditSchoolForm"
data-ajax-method="get" data-ajax="true"
data-ajax-loading="#loading3" data-ajax-loading-duration="500"
data-ajax-mode="replace" data-ajax-update="#results1">
<input Параметр-1 ...../>
<input Параметр-2 ...../>
<input type="submit" id="idInputEditSchoolInner" style="display: none;">
<div id="loading3" style="display:none; color:Red; font-weight:bold;">
<p>Идёт загрузка...</p>
</div>
<div id="results1" ></div> @* Результаты Ajax-процесса для разных форм *@
</form>
Создаю частичное представление (модельное) _EditSchool, которое через метод контроллера в режиме get запускается по кнопке id="idInputEditCodSchool".
Параметры поступапют в аргументы метода контроллера:
[HttpGet]
public IActionResult _EditSchool(Параметр-1, Параметр-2, ...)
Всё работает чудесно, если параметры заданы через <input ... />, то есть скалярно.
Но потом обратно по Post надо получить модельный класс частного представления
@model POIPKRO2022.Models.SupportiveClasses.KSchool_1
в метод контроллера:
[HttpPost]
public IActionResult _EditSchool(KSchool_1 school)
{
................................
}
и тут затык! Экземпляр класса сформированный в частном представлении - пустой.
Хотя в скрипте формы частного представления атрибут шаблона меняю с get на post:
$("#id_EditSchoolForm").attr("data-ajax-method", "post"); /*Сменили get на post*/
$("#idInputEditSchoolInner").click(); // Идём к post-методу контроллера (а это submit)
$("#id_EditSchoolForm").attr("data-ajax-method", "get"); /* Вернули обратно post на get */
Как получить сформированный экземпляр класса через ajax? Пока вижу только самый тупой вариант - прописать каждое поле класса через input в шаблоне и заполнить их в форме частного представления.
Этот вариант работает, но как быть, если полей в описании класса 20 штук или более!?
С уважением ВВГ