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

时间:2012-06-14 18:58:43

标签: c# asp.net-mvc razor drop-down-menu model-binding

我有一组填充到下拉菜单中的项目:

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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