ASP.NET MVC - Come aggiungere una classe a Html.EditorFor quando esistono già classi a causa di convalida js discreto?
-
28-09-2019 - |
Domanda
Sto cercando di aggiungere un Class
al EditorFor
Helper all'interno di un EditorTemplate
.
Il problema è che perché sto utilizzando discreto convalida , l'elemento di input già ha classi ad esso assegnata.
Ecco il mio 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"})
Ed ecco l'output
<input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />
Si può vedere qui che la classe datepicker
non è stato aggiunto, ma il "valore" è stato formattato correttamente.
Fondamentalmente può vedere che il EditorTemplate
funziona, ma il Class
non viene aggiunto al resto delle classi sull'elemento <input>
.
Qualcuno di voi sa come risolvere questo problema?
Soluzione
Si scopre che ho dovuto aggiungere un <UIHint("Date")>
alla mia classe amici.
Tutto è di nuovo a destra.
@ModelType Date?
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}", Model), String.Empty), New With {.class = "datepicker"})
Ecco il motivo per l'UIHint.
Il nome del modello predefinito è basato sul nome del tipo CLR, in questo caso DateTime. "Data" è un nome di scelta rapida in VB, non il nome del tipo reale (molto simile a "int" in C # è davvero una scorciatoia per "Int32" di CLR).
Altri suggerimenti
Prova questo
@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"})