У меня есть страница, которая устанавливает элементы управления на другой странице для обязательных (-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 .... что меня не особо радует ... так что, надеюсь, эта информация поможет найти решение, используя предполагаемое использование раскрывающегося списка для ....