我有以下编辑器模板'DropDown.cshtml'。 list
部分工作正常,模板使用了一些伏都教我从SelectList
获得所需的ViewData
。控制器将视图模型中的所有选择列表放入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
元素中没有选择任何项目。或者更确切地说,总是选择选择列表中的第一项。
为什么DropDownListFor
在编辑器模板中使用时忽略属性值,但在直接调用时工作正常?
答案 0 :(得分:3)
不幸的是,这是MVC3中的a known bug(我还没有在MVC 4 Beta中尝试过它,看它是否已修复)。
我使用的工作是在DropDownListFor绑定的集合中相应地手动设置Selected属性,这不是理想的但它有效。