【发布时间】:2015-02-05 02:34:26
【问题描述】:
我想在 EditorFor 中显示 Enum。我使用编辑器模板来显示它。(DropDownList)。
我看到了麦芽味EditorFor。我想为一些控件设置类。
@Html.EditorFor(m => m.Position, new { @class = "smallinput", style = "width:150px !important" })
@Html.EditorFor(m => m.DocumentType)
在编辑器中:Views/Shared/DisplayTemplates/Enum.cshtml
@model Enum
@{
var values = Enum.GetValues(ViewData.ModelMetadata.ModelType).Cast<object>()
.Select(v => new SelectListItem
{
Selected = v.Equals(Model),
Text = v.GetDisplayName(),
Value = v.ToString()
});
}
@Html.DropDownList("", values)
在模型中
[DisplayName("نوع سند")]
[UIHint("Enum")]
public DocumentType DocumentType { get; set; }
【问题讨论】:
-
您需要 MVC 5 才能将
@Html.EditorFor()与 html 属性一起使用。对于 MVC 4,您将需要使用@Html.TextBoxFor()或类似名称。另一种选择是将html属性作为AdditionalViewData传递并使用自定义EditorTemplate -
谢谢,我想在下拉列表中显示枚举,所以我使用 EditorFor。我使用 MVC4。我可以使用
AdditionalViewData将课程传递给编辑器吗? -
您需要包含用于呈现下拉菜单的
EditorTemplate -
我有一个 EditorTemplate 和渲染下拉菜单,但是如何将类传递给 EditorTemplate?
-
@StephenMuecke - 实际上,html 属性需要 MVC 5.1,这不在 5.0 中。
标签: css asp.net-mvc asp.net-mvc-4