template places displayfor asp.net-mvc asp.net-mvc-3 editorfor mvc-editor-templates

places - ASP.NET MVC: Usar EditorFor() con una plantilla predeterminada para enumeraciones



html editorfor decimal places (1)

Puede consultar la publicación del blog de Brad Wilson sobre las plantillas predeterminadas utilizadas en ASP.NET MVC. Cuando tiene una propiedad modelo de tipo Enum, es la plantilla de cadena la que se está representando. Así que puedes personalizar esta plantilla de editor de cadenas como esta:

~/Views/Shared/EditorTemplates/String.cshtml :

@model object @if (Model is Enum) { <div class="editor-label"> @Html.LabelFor(m => m) </div> <div class="editor-field"> @Html.EnumDropDownListFor(m => m) @Html.ValidationMessageFor(m => m) </div> } else { @Html.TextBox( "", ViewData.TemplateInfo.FormattedModelValue, new { @class = "text-box single-line" } ) }

y luego en su opinión simplemente:

@Html.EditorFor(x => x.SomeEnumProperty)

He escrito un ayudante EnumDropDownFor () que quiero usar junto con EditorFor (). Acabo de empezar a usar EditorFor (), así que estoy un poco confundido acerca de cómo se elige la plantilla.

La plantilla de mi editor Enum.cshtml está abajo:

<div class="editor-label"> @Html.LabelFor(m => m) </div> <div class="editor-field"> @Html.EnumDropDownListFor(m => m) @Html.ValidationMessageFor(m => m) </div>

Aparte de definir explícitamente la plantilla a usar, ¿hay alguna forma de tener una plantilla predeterminada que se use cada vez que se pasa un Enum a un EditorFor ()?