MVC DropDownListFor绑定嵌套类

时间:2013-09-25 14:03:37

标签: c# asp.net-mvc razor html-helper dropdownlistfor

对不起,这可能很明显,但我只需要检查一下。我有一个包含相关信息的嵌套类的类。该类是单数的,不在列表中或MVC不会绑定到该字段的任何内容。

模型

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?

由于

克里斯

2 个答案:

答案 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;

在视图

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

在这种情况下,最好使用@Html.CheckboxFor。如果您需要Nullable<bool>,那么您可能需要创建自己的自定义Html助手

creating custom helper

上查看此帖子

答案 1 :(得分:0)

昨晚成功解决了这个问题。它仅用于显示数据,因此不需要更新模型,因此我不需要担心回发后的绑定。我通过将选择列表的“选定值”设置为模型来解决它,脏但它可以工作。

由于

克里斯