我有以下编辑器模板’DropDown.cshtml’.列表部分工作正常,模板使用一些伏都教我从ViewData获取所需的SelectList.控制器将视图模型中的所有选择列表放入ViewData中,并且列表方面没有任何问题.
@{ var list = this.GetModelSelectList(); } @Html.DropDownListFor(m => Model,list)
我在外键视图模型属性上使用此模板,如下所示:
[required] [UIHint("DropDown","MVC","SelectListName","JobLevelSelectList")] [display(Name = "Job Level")] public Guid? JobLevelId { get; set; } public SelectList JobLevelSelectList { get; set; }
在控制器中,JobLevelId在执行视图之前立即具有正确的值,但在呈现的select元素中没有选择任何项.或者更确切地说,总是选择选择列表中的第一项.
解决方法
不幸的是,MVC3中的
a known bug(我还没有在MVC 4 Beta中尝试过,看看它是否已修复).
我使用的工作是在DropDownListFor绑定的集合中相应地手动设置Selected属性,它不是理想的但是它起作用.