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.