我有一个为视图定义了多个SelectLists的viewmodel,我试图为常用的东西创建共享的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。
提前感谢您的帮助。