我有一个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
如何获得价值?
答案 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
模型具有Name
和Id
属性:
@Html.DropDownListFor(
c => c.ScoolId,
new SelectList(Model.Schools, "Id", "Name"),
"Select some school"
)