2012-06-14 101 views
3

我已填充到一個下拉菜單項的集合中選擇一個選擇SelectListItem項目:不能讓我DropDownListFor在下拉菜單

string myUserName = "PopulatedWithSomeUser"; 

var users= from x in userRepository.GetAll() 
    select new SelectListItem 
     { 
      Value = x.Id.ToString(), 
      Text = x.Name, 
      Selected = (x.Name == myUserName) 
     }; 

這正確地填充的對象,並將選定的項目。 接下來,我通過這次我的看法與視圖模型,並嘗試填充/選擇:

我想:

@Html.DropDownListFor(model=>model.Users,new SelectList(Model.Users),new {id = "add-user-list", name="add-user-list"}) 

@Html.DropDownListFor(model=>model.Users,new SelectList(Model.Users,"Value","Text","Selected"),new {id = "add-user-list", name="add-user-list"}) 

@Html.DropDownListFor(model=>model.Users,Model.Users, new {id = "add-user-list", name="add-user-list"}) 

名單正確填充,但我的「選定」項目從未被選中。 我在做什麼錯? 謝謝。

回答

2

作爲第一個參數,您應該在表單提交後爲您要接收的數據傳遞一個字段。其他的一切看起來正確:

@Html.DropDownListFor(model=>model.UserId, Model.Users) 

或者,如果你要提供你自己的ID和名稱 - 這將是更好地使用這個(msdn):

@Html.DropDownList("add-user-list", Model.Users, new {id = "add-user-list"}) 
+0

謝謝你,心動不如行動 – Shenaniganz