2013-09-25 5 views
0

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

Модель

public class Car 
{ 
    public GloveBoxDetail GloveBox = new GloveBoxDetail(); 
} 

public class GloveBoxDetail 
{ 
    public bool isLockable{get;set;} 
} 

Посмотреть

@Html.DropDownListFor(model => model.GloveBox.isLockable, new SelectList(...)) 

Я собираюсь придется вручную создавать DropDownList-х?

Благодаря

Chris

+0

Не выпадающий список используется только для коллекций? Каким будет выбор? – gunr2171

+0

@ gunr2171 Распространенное заблуждение: раскрывающееся меню используется для выбора одного значения, а не коллекции. Коллекция должна появиться откуда-то еще, что указано в '' new SelectList() '' в его коде – Kippie

+0

@ Kippie, я стою исправлено. Благодарю. – gunr2171

ответ

0

удалось выяснить это прошлой ночью. Его только для отображения данных, поэтому обновление модели не требуется, поэтому мне не нужно беспокоиться о привязке к сообщению. Я решил это, установив «Выбранное значение» выбранного списка в модель, грязный, но он работает.

Благодаря

Крис

0

Вы можете привязать любое IEnumarable к DROPDOWNLIST

Пожалуйста, попробуйте как этот

В контроллере

List<SelectListItem> yesno=new List<SelectListItem>(); 
yesno.add(new SelectListItem("Yes","Yes",true); 
yesno.add(new SelectListItem("No","No"); 

ViewBag.YesNoList=yesno; 

в View

@Html.DropDownListFor(model => model.GloveBox.isLockable, 
     IEnumbarable<SelectListItem>(ViewBag.YesNoList)) 

Его лучше использовать @Html.CheckboxFor в этом случае. Если вам нужна Nullable<bool> то вам может понадобиться, чтобы создать свой собственный Html Helper

Проверить эту должность на creating custom helper

Смежные вопросы