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 штук или более!?

С уважением ВВГ


Ответы (0 шт):