无法让我的DropDownListFor在下拉菜单中选择一个选定的SelectListItem项

我有一个填充到下拉菜单中的项目集合:

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

这会正确填充对象并设置所选项目。 接下来,我使用ViewModel将其传递给我的View并尝试填充/选择:

我试过了:

  @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"}) 

列表已正确填充,但我的“已选择”项目从未被选中。 我究竟做错了什么 ? 谢谢。

作为第一个参数,您应该在表单提交后传递一个字段,以表示您将要接收的数据。 其他一切看起来都是正确的

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

或者,如果您要提供自己的ID和名称 – 最好使用此( msdn ):

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