4

我有以下名为“DropDown.cshtml”的编辑器模板。该list部分工作正常,模板使用了一些我SelectListViewData. 控制器将视图模型中的所有选择列表放入 中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在我的编辑器模板中使用时会忽略属性值,而直接调用时却可以正常工作?

4

1 回答 1

3

不幸的是,这是MVC3 中的一个已知错误(我还没有在 MVC 4 Beta 中尝试过它是否已修复)。

我使用的解决方法是在 DropDownListFor 绑定的集合中相应地手动设置Selected属性,这并不理想,但它有效。

于 2012-04-17T13:50:03.030 回答