Question

J'ai un modèle d'éditeur pour un objet personnalisé. Assez basique - a juste un tas de chaînes et dates:

<%: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)%>

Il est stocké dans le dossier partagé / EditorTemplates. J'ai aussi un modèle d'éditeur DateTime.ascx dans le même endroit, pour remplacer TOUS datetime champs.

Comme vous pouvez le voir dans le code ci-dessus, l'un des champs de date utilise un EditorFor pour le champ de date, l'autre n'a pas. Cependant, ils ont tous deux rendent le même, ce qui me porte à croire l'éditeur de DateTime n'est pas accessible. Est-ce que je fais mal? On dirait que cela devrait être possible de le faire.

Je l'ai utilisé l'éditeur DateTime directement dans une vue, et il fonctionne très bien.

Merci pour toute aide ou aperçu.

Était-ce utile?

La solution 2

Je compris le problème:

J'ai des classes de métadonnées partielles mises en place pour les annotations de données dans le modèle (j'utilise Entity Framework). Ma vue partielle de la date est pour? DateTime (DateTime.ascx)

J'ai eu l'attribut DataType pour toutes les dates fixées à [DataType(DataType.Date)] au lieu de [DataType(DataType.DateTime)].

Modification de cet attribut fixe le tout.

Autres conseils

J'ai essayé votre scénario dans MVC 2 et MVC 3 et sous MVC 3, il fonctionne comme prévu.

Juste pour que je comprends bien que vous avez dans votre EditorTemplates Shared qui contient votre éditeur de ComplexModel.ascx et dans votre ComplexModel.ascx vous appelez Html.EditorFor(m => m.ADate).

Je ne suis pas sûr de mises à jour de MVC 2 en ce qui concerne cela, mais MVC 3 il fonctionne vraiment.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top