ASP.NET MVC - Como adicionar uma classe ao html.editor para quando as aulas já existem devido à validação JS discreta?
-
28-09-2019 - |
Pergunta
Estou tentando adicionar um Class
para o EditorFor
Ajudante dentro de um EditorTemplate
.
O problema é isso porque estou usando Validação discreta, o elemento de entrada já possui classes atribuídas a ele.
Aqui está o meu 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"})
E aqui está a saída
<input class="text-box single-line" id="BirthDate" name="BirthDate" type="text" value="08/08/1980" />
Você pode ver aqui que o datepicker
A classe não foi adicionada, mas o "valor" foi formatado adequadamente.
Basicamente, posso ver que o EditorTemplate
está funcionando, mas o Class
não está sendo anexado ao resto das classes no <input>
elemento.
Algum de vocês sabe como consertar isso?
Solução
Acontece que eu tive que adicionar um <UIHint("Date")>
para minha aula de amigo.
Tudo está certo novamente.
@ModelType Date?
@Html.TextBox("", If(Model.HasValue, String.Format("{0:MM/dd/yyyy}", Model), String.Empty), New With {.class = "datepicker"})
Aqui está a razão da UIHINT.
O nome do modelo padrão é baseado no nome do tipo CLR, neste caso DateTime. "Date" é um nome de atalho no VB, não o nome do tipo real (como "int" em C# é realmente um atalho para "Int32" do CLR).
Outras dicas
tente isso
@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"})