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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top