我有一个viewcodel,为视图定义了多个SelectLists,我正在尝试为常用的东西创建共享的SelectLists,比如状态列表 . 当填充viewmodel中的SelectList时,我可以看到正确设置了SelectedItem,但它没有在视图中填充 .
在viewmodel中:
[Display(Name = "State")]
public int StateID { get; set; }
public SelectList States { get; set; }
在控制器中:
staff.States = StatesMenu(db.TenantRepos.StateID); //setting default value
的SelectList:
public static SelectList StatesMenu(int? selected)
{
SelectList _states = new SelectList(db.States.OrderBy(o => o.Code).Select(x => new StateMenuVM { ID = x.ID, Code = x.Code }), "ID", "Code", selected);
return _states;
}
视图:
@Html.DropDownListFor(m => m.StateID, Model.States)
因此,当我运行视图时,选择列表没有选定的项目 . 如果我手动执行此操作,则所选项目显然有效:
staff.StateID = db.TenantRepos.StateID;
我很困惑为什么没有使用已选择的项创建SelectList,因为我在新的SelectList中设置了该值,并且它正确地传递给staff.States .
在此先感谢您的帮助 .