MVC Dropdownlist для возврата к значению по умолчанию на нуле - PullRequest
0 голосов
/ 03 января 2019

У меня есть страница, которая устанавливает элементы управления на другой странице для обязательных (-1), отключенных (0) или необязательных (нулевых) из таблицы БД.

Все они используют один и тот же параметр Viewbag в качестве источника.

здесь есть выпадающий код, который повторяется x раз.

    @Html.DropDownListFor(x=>x.Control1, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control2, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control3, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control4, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})
    @Html.DropDownListFor(x=>x.Control5, (IEnumerable<SelectListItem>) ViewBag.StateList, "Optional", new {@class = "form-control"})

StateList Contains

    List<SelectListItem> states = new List<SelectListItem>();
    states.Add(new SelectListItem { Text = "Required", Value = "-1" });
    states.Add(new SelectListItem { Text = "Disabled", Value = "0" });
    ViewBag.StateList = states;

Это загружается правильно, если все они нулевые, онивсе показываются по желанию.

, если я устанавливаю каждый из них как обязательный или отключенный, он также работает правильно.

, если я оставляю первой паре необязательный параметр и устанавливаю номер 3 в обязательный, оставляя остальныеон правильно сохраняет в БД как

null,null,-1,null,null,etc

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

Такчто должно отображаться как

Необязательно, Необязательно, Обязательно, Необязательно, Необязательно и т. д.

Отображается как

Необязательно, Необязательно, Обязательно, Обязательно, Требуется.

Любые идеи?

**** РЕДАКТИРОВАТЬ ***

ОК Определенно проблема связывания с Dropdownlistfor ... я заменил их на

        <select id="Control1" name="Control1" class="form-control">
            @foreach (SelectListItem option in ViewBag.StateList)
            {
                if (option.Value == Model.Control1.ToString())
                {
                    <option value="@option.Value" selected='selected'>@option.Text</option>
                }
                else
                {
                    <option value="@option.Value">@option.Text</option>
                }
            }
        </select>

и этоработает как положено ....

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

...