Html.DropDownListFor не связывает логический SelectList - PullRequest
1 голос
/ 13 октября 2011

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

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;

На мой взгляд, я использую помощник раскрывающегося списка ниже.

@Html.DropDownListFor(m => m.ResponseTo, (IEnumerable<SelectListItem>)ViewData[ViewDataKeys.ResponseTo], "--Select--")

это свойство моего класса Model:

[Display(Name = "Response To")]
public bool ResponseTo { get; set; }

Моя проблема заключается в том, что при любом значении моей модели. В раскрывающемся списке всегда выбирается необязательное значение.

Я пытался использовать вспомогательный флажок, и на удивление он, кажется, не проверяется, хотя, когда я проверял элемент, значение флажка "true"

Я пытался использоватьпомощник текстового поля, и он показывает «истинный» текст, который, я думаю, что моя модель имеет значение, и он просто не привязывается к выпадающему списку или флажку.Мне нужно использовать выпадающий список.Что-нибудь, что я пропустил?

1 Ответ

4 голосов
/ 13 октября 2011

Только что проверил, работает:

В вашем методе действий:

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)
...