Итак, в моем файле есть рабочий пример отправки формы и запуска действия контроллера. И в этой форме есть функционирующий элемент выбора, и он работает, как ожидалось, контроллер может получить значение в элементе выбора.
@using (Html.BeginForm("InsertEntry", "Modeliai"))
{
<div class = "row">
<div class = "col-7">
<input type = "text" class = "form-control" placeholder = "Pavadinimas" name = "Pavadinimas">
</div>
<div class = "col-3">
<select class = "selectpicker" data-live-search = "true" name = "fk_MARKEid">
@foreach (var item in Model.Markes)
{
<option data-tokens = "@item.pavadinimas" data-content = "@item.pavadinimas">@item.id</option>
}
</select>
</div>
<button type = "submit" class = "btn btn-success">Add</button>
</div>
}
Но когда я пытаюсь добавить элемент выбора в строку таблицы, контроллер каким-то образом не улавливает значение элемента выбора.
@using (Html.BeginForm("UpdateEntry", "Modeliai"))
{
<td>
<input type = "hidden" name = "id" value = "@item.id" />
<input type = "text" name = "pavadinimas" class = "form-control" value = "@item.pavadinimas" />
</td>
<td>
<select class = "selectpicker" data-live-search = "true" name = "fk_MARKEid">
@{
var ignore = Model.Markes.FirstOrDefault(x => x.id == item.fk_MARKEid);
}
@foreach (var x in Model.Markes)
{
if (ignore?.id == x.id)
{
<option data-tokens = "@ignore?.pavadinimas" data-content = "@ignore?.pavadinimas" selected = "selected">@ignore?.id</option>
}
<option data-tokens = "@x.pavadinimas" data-content = "@x.pavadinimas">@x.id</option>
}
</select>
</td>
<td style = "width: 100px">
<button class = "close" type = "submit">
<i class = "fas fa-pencil-alt" style = "font-size: smaller"></i>
</button>
</td>
}
Да, я попытался проверить, совпадают ли имена выбранных элементов и имена моделей.
Любая помощь относительно работы второй формы или объяснение, почему это происходит, будет оценена по достоинству.
Да, вы правы, я изменил только это, и да, я получаю значение pavadinimas, поэтому он частично работает
Я решил проблему, добавив скрытый ввод





Лучший способ использовать select в ASP.Net MVC - использовать @ Html.DropDownListFor с SelectList.
@Html.DropDownListFor(x => x.YourModel, new SelectList(ViewBag.customValue, "Text", "Value"), new { htmlAttributes = new { @class = "form-control" } })
List<SelectListItem> listForSelect = new List<SelectListItem>();
listForSelect.Add(new SelectListItem { Text = "Your text", Value = "Your value" });
ViewBag.customValue = listForSelect;
Фактическая причина, по которой я не хотел использовать Html.DropDownListFor, потому что я не могу заставить его работать с классом начальной загрузки selectpicker и опцией data-live-search
Единственное изменение, которое вы сделали, это переключение с
divнаtable, и теперь он не работает? Вы понимаете ценностьpavadinimas? Мне нравится ваш код.