Отправить форму над элементом выбора в ASP.Net MVC

Итак, в моем файле есть рабочий пример отправки формы и запуска действия контроллера. И в этой форме есть функционирующий элемент выбора, и он работает, как ожидалось, контроллер может получить значение в элементе выбора.

@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>
}

Да, я попытался проверить, совпадают ли имена выбранных элементов и имена моделей.

Любая помощь относительно работы второй формы или объяснение, почему это происходит, будет оценена по достоинству.

Единственное изменение, которое вы сделали, это переключение с div на table, и теперь он не работает? Вы понимаете ценность pavadinimas? Мне нравится ваш код.

Shyju 22.04.2018 18:09

Да, вы правы, я изменил только это, и да, я получаю значение pavadinimas, поэтому он частично работает

Sprint3rx 22.04.2018 18:11

Я решил проблему, добавив скрытый ввод

Sprint3rx 22.04.2018 18:43
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
1 682
1

Ответы 1

Лучший способ использовать 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

Sprint3rx 22.04.2018 16:07

Другие вопросы по теме