Binding to a DropDownList in MVC3

不羁岁月 提交于 2019-12-29 01:56:05

问题


Previously, I was using this in my model

 public List<SelectListItem> StatusList { get; set; }
 public string Status { get; set; }    

and this in my view to bind to the Dropdownlist

 @Html.DropDownListFor(model => model.Status, Model.StatusList, "")

but if I want to use

  public List<ICode> StatusList { get; set; }

where ICode is as below

 public interface ICode
{
    int Id { get; set; }
    ICodeGroup CodeGroup { get; set; }
    string ShortDescription { get; set; }
    string LongDescription { get; set; }
}

What should I do in my view and model?


回答1:


Cybernate's solution works. You could also do:

@Html.DropDownListFor(model => model.Status, 
     new SelectList(Model.StatusList, "Id", "ShortDescription"))

Cybernate's version will do stronger type checking, but SelectList is more encapsulated.




回答2:


Try this:

@Html.DropDownListFor(model => model.Status, 
 Model.StatusList.Select(a=> 
  new SelectListItem(){
   Text=a.ShortDescription, Value=a.Id.ToString()
  }),
 "")


来源:https://stackoverflow.com/questions/7247871/binding-to-a-dropdownlist-in-mvc3

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!