ASP.NET MVC - Comment ajouter une classe à Html.EditorFor lorsque les classes existent déjà en raison de la validation des js discret?
-
28-09-2019 - |
Question
Je suis en train d'ajouter un Class
à l'intérieur d'un EditorFor
Helper EditorTemplate
.
Le problème est que parce que je suis en utilisant Validation Unobtrusive , l'élément d'entrée a déjà des classes qui lui est attribué.
Voici mon 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"})
Et voici la sortie
<input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />
Vous pouvez voir ici que la classe datepicker
n'a pas été ajouté, mais la « valeur » a été correctement formaté.
En fait, je peux voir que le EditorTemplate
fonctionne, mais le Class
n'est pas ajouté au reste des classes sur l'élément <input>
.
Est-ce que quelqu'un d'entre vous savent comment résoudre ce problème?
La solution
avère que je devais ajouter un <UIHint("Date")>
à ma classe d'amis.
Tout est à nouveau à droite.
@ModelType Date?
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}", Model), String.Empty), New With {.class = "datepicker"})
Voici la raison de la UIHint.
Le nom du modèle par défaut est basé sur le nom du type CLR, dans ce cas DateTime. « Date » est un nom de raccourci dans VB, pas le vrai nom du type (un peu comme « int » en C # est vraiment un raccourci pour « Int32 » de CLR).
Autres conseils
essayer cette
@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"})