以前,我在我的模型中使用它
public List<SelectListItem> StatusList { get; set; }
public string Status { get; set; }
这在我看来要绑定到Dropdownlist
@Html.DropDownListFor(model => model.Status, Model.StatusList, "")
但如果我想使用
public List<ICode> StatusList { get; set; }
其中ICode如下
public interface ICode
{
int Id { get; set; }
ICodeGroup CodeGroup { get; set; }
string ShortDescription { get; set; }
string LongDescription { get; set; }
}
我应该在视图和模型中做些什么?
答案 0 :(得分:2)
试试这个:
@Html.DropDownListFor(model => model.Status,
Model.StatusList.Select(a=>
new SelectListItem(){
Text=a.ShortDescription, Value=a.Id.ToString()
}),
"")
答案 1 :(得分:2)
Cybernate的解决方案有效。你也可以这样做:
@Html.DropDownListFor(model => model.Status,
new SelectList(Model.StatusList, "Id", "ShortDescription"))
Cybernate的版本将进行更强大的类型检查,但SelectList更加封装。