ASP.NET MVC - Come aggiungere una classe a Html.EditorFor quando esistono già classi a causa di convalida js discreto?

StackOverflow https://stackoverflow.com/questions/4272492

  •  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?

È stato utile?

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"})
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top