Si può avere Editors Bambino in ASP.Net MVC 2?
-
04-10-2019 - |
Domanda
Ho un editor di modelli per un oggetto personalizzato. Piuttosto semplice - solo ha un sacco di stringhe e date:
<%:Html.LabelFor(model => model.AString)%>
<%:Html.TextBoxFor(model => model.AString)%>
<%:Html.LabelFor(model => model.ADate)%>
<%:Html.EditorFor(model => model.ADate)%>
<%:Html.LabelFor(model => model.AnotherDate)%>
<%:String.Format("{0:d}", Model.AnotherDate)%>
Questa è memorizzato nella Shared / EditorTemplates cartella. Ho anche un editor di modelli DateTime.ascx nella stessa posizione, per ignorare TUTTI datetime campi.
Come si può vedere nel codice qui sopra, uno dei campi data utilizza un EditorFor
per il campo data, l'altro no. Tuttavia, entrambi rendono la stessa, il che mi porta a credere l'editor DateTime non è in uso. C'è qualcosa che sto facendo male? Sembra che questo dovrebbe essere possibile fare.
Ho usato l'editor DateTime direttamente in una vista, e funziona bene.
Grazie per qualsiasi aiuto o intuizione.
Soluzione 2
ho capito il problema:
Ho classi di metadati parziali impostati per dati annotazioni del modello (che sto utilizzando Entity Framework). La mia visione parziale Date è per? DateTime (DateTime.ascx)
ho avuto l'attributo tipo di dati per tutte le date stabilite per [DataType(DataType.Date)]
invece di [DataType(DataType.DateTime)]
.
La modifica quell'attributo risolto tutto.
Altri suggerimenti
Ho provato lo scenario sotto MVC 2 e MVC 3 e sotto MVC 3 funziona come previsto.
Proprio così ho capito bene avete EditorTemplates
nel vostro condivisa che contiene il vostro editor ComplexModel.ascx
e nel rispetto del ComplexModel.ascx
chiamarti Html.EditorFor(m => m.ADate)
.
Non sono sicuro di aggiornamenti MVC 2 per quanto riguarda questo, ma MVC 3 è sicuramente funziona.