我有一组填充到下拉菜单中的项目:
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"})
列表已正确填充,但我的“已选择”项目从未被选中。 我究竟做错了什么 ? 感谢。
答案 0 :(得分:2)
作为第一个参数,您应该在表单提交后传递一个字段,以便您接收数据。其他一切看起来都是正确的:
@Html.DropDownListFor(model=>model.UserId, Model.Users)
或者如果您要提供自己的ID和名称 - 最好使用它(msdn):
@Html.DropDownList("add-user-list", Model.Users, new {id = "add-user-list"})