javascript — Сериализованное значение select2, недоступное в контроллере asp.net mvc

Сериализованное значение select2 недоступно в контроллере asp.net mvc

У меня есть представление, в котором есть несколько элементов управления внутри div, которые я хочу сериализовать и передать в контроллер через AJAX. Поле SchoolType в представлении представляет собой выпадающий список select2 multi select.

Модель:

 public class SchoolModel { public string StudentName{ get; set; } public List{amp}lt;string{amp}gt; SchoolType{ get; set; } public List{amp}lt;SelectListItem{amp}gt; SchoolTypeList{ get; set; } } 

Посмотреть :

 {amp}lt;div id="divSchool"{amp}gt; {amp}lt;div class="row"{amp}gt; {amp}lt;div class="col-md-12"{amp}gt; {amp}lt;div class="col-md-6"{amp}gt; {amp}lt;div class="form-group"{amp}gt; {amp}lt;label asp-for="SchoolType" class="col-md-3 control-label"{amp}gt;School Type{amp}lt;/label{amp}gt; {amp}lt;div class="col-md-9"{amp}gt; {amp}lt;select asp-for="SchoolType" asp-items="Model.SchoolTypeList" class="form-control medium"{amp}gt;{amp}lt;/select{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;div class="col-md-6"{amp}gt; {amp}lt;div class="form-group"{amp}gt; {amp}lt;label asp-for="StudentName" class="col-md-3 control-label"{amp}gt;Student Name{amp}lt;/label{amp}gt; {amp}lt;div class="col-md-9"{amp}gt; {amp}lt;input asp-for="StudentName" class="form-control" /{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; {amp}lt;/div{amp}gt; 

контроллер:

 [HttpPost] public ActionResult Index(SchoolModel model) { } 

Мой код JS:

 $('#SchoolType').select2({ placeholder: "Filter by school" } $("document").on("click", ".btnCheck", function () { var model = $('#divSchool').find('select, textarea,input').serialize(); $.ajax({ url: "/Student/Index", type: 'POST', data: { model: model }, cache: true, async: true, }).done(function (result) { }).fail(function (error) { }) }); 

Однако сериализованный div выглядит примерно так

 model = "StudentName=Test{amp}amp;SchoolType=1b{amp}amp;SchoolType=26a" 

В то время как эти значения прямо на стороне клиента, в AJAX значение StudentName отображается нормально, тогда как значение SchoolType отображается как ноль на стороне сервера в контроллере. Как я могу это исправить?

Возможная проблема: поскольку значение SchoolType является списком строк, оно не сопоставляется с отдельными строками.

РЕДАКТИРОВАТЬ 1: Я пытался изменить div в форме, но та же проблема сохраняется.

РЕДАКТИРОВАТЬ 2: Эта проблема решается в PHP путем изменения выбранного имени. Этот ответ показывает пример.

Понравилась статья? Поделиться с друзьями:
JavaScript & TypeScript
Adblock
detector