2016-05-12 114 views
0

我使用下面的代碼綁定一個下拉列表設置從MVC選擇在下拉列表值控制器

型號

public IEnumerable<TitleNew> TitleOption = 
    new List<TitleNew> 
    { 
     new TitleNew {Id = 0, Value = "---Select---"}, 
     new TitleNew {Id = 1, Value = "Mr."}, 
     new TitleNew {Id = 2, Value = "Ms."} 
    }; 

public class TitleNew 
{ 
    public int Id { get; set; } 
    public string Value { get; set; } 
} 
public string Title { get; set; } 

查看

@Html.DropDownListFor(m => m.Title, 
           new SelectList(Model.TitleOption, 
           "Id", "Value", 
           Model.TitleOption.First().Id)) 

我無法設置選定值下拉列表。所選值來自數據庫,併爲Title屬性設置。 請幫我一把。

+0

使用viewbag而不是模型。 –

+0

(1)從您的代碼中刪除'New TitleNew {Id = 0,Value =「---選擇---」},',並使用接受'labelOption'的'DropDownListFor()'重載。 (2)當你綁定到一個屬性時,它將忽略決定選擇什麼的'Title'的值,並且'SelectList'構造函數的第四個參數被忽略,因此刪除'Model.TitleOption.First()。Id'(3)set在將模型傳遞給視圖和「女士」之前,將「標題」的值設置爲「2」 –

回答

1

new TitleNew {Id = 0, Value = "---Select---"}看起來像一個選項標籤,它已包含在dropdownlistfor的重載方法中。

所以,如果你想要的是所有用戶第一次看到,當他們看下拉列表,然後這應該工作的選項:

public IEnumerable<TitleNew> TitleOption = 
new List<TitleNew> 
{ 
    new TitleNew {Id = 0, Value = "Mr."}, 
    new TitleNew {Id = 1, Value = "Ms."} 
}; 

public class TitleNew 
{ 
    public int Id { get; set; } 
    public string Value { get; set; } 
} 
public string Title { get; set; } 

查看:

@Html.DropDownListFor(m => m.Title, new SelectList(Model.TitleOption, "Id", "Value"), "-- Select -- ") 
相關問題