uihint template places example displayfor asp.net-mvc-4 mvc-editor-templates

asp.net-mvc-4 - template - html editorformodel



Plantilla del editor ASP.NET MVC 4 para tipos básicos (2)

Creé una plantilla para la entrada Número y si lo hago

@Html.EditorFor(model => model.SomeValue, "Number")

funciona bien y se usa la plantilla.

Sin embargo eso no funciona:

@Html.EditorFor(model => model.SomeValue)

¿Por qué debo especificar el nombre de la plantilla del editor para los tipos básicos?


En su plantilla de editor, debe tener el mismo tipo Ejemplo:

model.SomeValue es el tipo de loremIpsumObject

En su EditorTemplate usted es:

@model YourNamespaceWhereIsYourClass.loremIpsumObject ...And your code in your editorTemplate....

puedes encontrar un ejemplo here para datetime

Esto te ayuda ?


Las plantillas de editor funcionan por convención. El nombre de la plantilla debe coincidir con el nombre del tipo. Por ejemplo, si SomeValue es un tipo int , podría escribir una plantilla de editor personalizada en ~/Views/Shared/EditorTemplates/Int32.cshtml que se usará. En este caso, todos los tipos de enteros usarán esta plantilla personalizada cuando escriba @Html.EditorFor(model => model.SomeValue) .

Si no desea anular todas las plantillas para tipos enteros, puede escribir una plantilla con nombre específico ~/Views/Shared/EditorTemplates/Number.cshtml que podría usar solo para algunas propiedades especificando el nombre de esta plantilla como segundo argumento para el EditorFor helper: @Html.EditorFor(model => model.SomeValue, "Number") o decorando su propiedad de modelo de vista con el atributo [UIHint] :

[UIHint("Number")] public int SomeValue { get; set; }

y luego simplemente usando @Html.EditorFor(model => model.SomeValue) renderizará la plantilla personalizada Number.cshtml .

También recomendaría que leyeras la blog post del blog post Brad Wilson sobre las plantillas predeterminadas en ASP.NET MVC.