【问题标题】:Why is DropDownListFor not recognizing the selected value in my editor template?为什么 DropDownListFor 无法识别我的编辑器模板中的选定值?
【发布时间】:2012-04-15 15:38:35
【问题描述】:

我有以下名为“DropDown.cshtml”的编辑器模板。 list 部分工作正常,模板使用了一些我从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 元素中没有选择项目。或者更确切地说,选择列表中的第一项始终被选中。

为什么DropDownListFor在我的编辑器模板中使用时会忽略属性值,而直接调用时却可以正常工作?

【问题讨论】:

标签: asp.net-mvc asp.net-mvc-3 mvc-editor-templates


【解决方案1】:

不幸的是,这是 MVC3 中的 a known bug(我还没有在 MVC 4 Beta 中尝试过它是否已修复)。

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

【讨论】:

  • 谢谢。看看我是否可以在我的编辑器模板中执行此解决方法。
猜你喜欢
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 2019-04-12
  • 1970-01-01
  • 2023-03-25
  • 2020-12-14
  • 2019-03-20
相关资源
最近更新 更多