ASP.NET MVC - ¿Cómo añadir una clase a la Html.EditorFor cuando ya existen clases debido a la validación js discreta?
-
28-09-2019 - |
Pregunta
Estoy intentando añadir un Class
a la EditorFor
ayudante dentro de un EditorTemplate
.
El problema es que debido a que estoy usando Discreto Validación , el elemento de entrada ya ha clases asignado a él.
Aquí está mi EditorTemplate
@Inherits System.Web.Mvc.ViewUserControl(Of Nullable(Of Date))
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}"), String.Empty), New With {.class = "datepicker"})
Y aquí está la salida
<input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />
Se puede ver aquí que la clase datepicker
no se ha añadido, sin embargo, el "valor" se ha formateado correctamente.
Básicamente se puede ver que el EditorTemplate
está trabajando, pero el Class
no se agrega en el resto de las clases en el elemento <input>
.
¿Alguno de ustedes sabe cómo solucionar este problema?
Solución
Resulta que he tenido que añadir un <UIHint("Date")>
a mi clase de amigos.
Todo es nuevo a la derecha.
@ModelType Date?
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}", Model), String.Empty), New With {.class = "datepicker"})
Esta es la razón de la UIHint.
El nombre de la plantilla por defecto se basa en el nombre del tipo CLR, en este caso DateTime. "Fecha" es un nombre de acceso directo en VB, no el nombre del tipo real (muy parecido a "int" en C # es realmente una abreviatura de "Int32" de CLR).
Otros consejos
Probar
@Inherits System.Web.Mvc.ViewUserControl(Of Nullable(Of Date))
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}"), String.Empty), new {.class = "datepicker"})