2011-08-30 57 views
1

以前,我在我的模型綁定到一個DropDownList在MVC3

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

利用這一點,這在我看來綁定到下拉列表

@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; } 
} 

我的觀點和模型應該怎麼做?

回答

2

Cyber​​nate的解決方案工作。你也可以這樣做:

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

Cyber​​nate的版本將做更強的類型檢查,但SelectList更加封裝。

2

試試這個:

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

優雅的解決方案 – Sandeep