#asp.net-mvc-3 #model-binding #html.dropdownlistfor #selectlistitem
#asp.net-mvc-3 #привязка к модели #html.dropdownlistfor #selectlistitem
Вопрос:
У меня есть этот код, который создает список выбора в качестве логического ответа
var responseList = new List<SelectListItem>();
responseList.Add(new SelectListItem { Text = "Going", Value = bool.TrueString});
responseList.Add(new SelectListItem { Text = "Not Going", Value = bool.FalseString });
ViewData[ViewDataKeys.ResponseTo] = vatOptionList;
На мой взгляд, я использую помощник dropdownlist ниже.
@Html.DropDownListFor(m => m.ResponseTo, (IEnumerable<SelectListItem>)ViewData[ViewDataKeys.ResponseTo], "--Select--")
это свойство моего класса модели:
[Display(Name = "Response To")]
public bool ResponseTo { get; set; }
Моя проблема в том, что какова бы ни была ценность моей модели.В ответ на это выпадающий список всегда выбирает необязательное значение.
Я попытался использовать вспомогательный флажок, и, к удивлению, он, похоже, не проверен, хотя, когда я проверил элемент, значение флажка равно «true»
Я попытался использовать помощник текстового поля, и он показывает «истинный» текст, который, я думаю, имеет значение для моей модели, и он просто не привязывается к выпадающему списку или флажку. Мне нужно использовать выпадающий список. Что-нибудь, что я пропустил?
Комментарии:
1. Вы добавляете элементы списка выбора в responseList, но передаете vatOptionList в свои данные просмотра?
Ответ №1:
Только что протестировал это, это работает:
В вашем методе действия:
var selectListItems = new List<SelectListItem>();
selectListItems.Add(new SelectListItem { Text = "Going", Value = bool.TrueString });
selectListItems.Add(new SelectListItem { Text = "Not going", Value = bool.FalseString });
ViewBag.MySelectList = new SelectList(selectListItems, "Value", "Text", viewModel.IsGoing);
По вашему мнению:
@Html.DropDownList("IsGoing", (SelectList) ViewBag.MySelectList)