@ Html.DropDownListFor具有集合问题的类

时间:2011-09-08 18:16:19

标签: asp.net-mvc razor

我有一个viewModel类'SomeDataViewMode',该类具有'List Schools'对象,该对象填充了'School'对象。 School obejct拥有属性SchoolID和Name。 在我看来(Razor),我补充道:

@Html.DropDownListFor(c => c.ScoolId, new SelectList(Model.Schools), "Select some school")

但我得到的是下拉列表:

MyProject.Domain.Entities.School

如何获得价值?

2 个答案:

答案 0 :(得分:1)

您应该向ToString()类添加School方法,或使用LINQ创建SelectListItem s和Text s的Value:< / p>

new SelectList(Model.Schools.Select(s => new SelectListItem { Text = s.Name, Value = s.SchoolId }))

编辑:您的代码不必要复杂 你可以写

@Html.DropDownListFor(x => x.Schools, new SelectList(list, "SchoolId", "Name"))

答案 1 :(得分:0)

您需要指定School对象的哪个属性应该用于Value,哪个属性用于Text。例如,如果School模型具有NameId属性:

@Html.DropDownListFor(
    c => c.ScoolId, 
    new SelectList(Model.Schools, "Id", "Name"), 
    "Select some school"
)