Frage

ich einen Editor Vorlage für ein benutzerdefiniertes Objekt haben. Ziemlich einfach - hat nur ein paar Strings und Daten:

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

Dies wird im Shared / EditorTemplates-Ordner gespeichert. Ich habe auch eine DateTime.ascx Editor-Vorlage in der gleichen Position, ALL Datetime-Felder außer Kraft zu setzen.

Wie Sie im obigen Code sehen können, eine der Datumsfelder verwendet ein EditorFor für das Datumsfeld, hat der andere nicht. Aber sie machen beide die gleiche, die führt mich der Datetime-Editor zu glauben, nicht zugegriffen wird. Gibt es etwas, was ich falsch mache? Scheint, wie dies möglich sein sollte zu tun.

Ich habe den Datetime-Editor direkt in einer Ansicht verwendet, und es funktioniert gut.

Vielen Dank für jede Hilfe oder Einsicht.

War es hilfreich?

Lösung 2

Ich fand heraus, das Problem:

Ich habe teilweise Metadatenklassen einrichten für Data Annotations im Modell (Ich bin mit Entity Framework). Meine Teildatumsansicht ist für die? Datetime (DateTime.ascx)

Ich hatte das Datatype-Attribut für alle die auf [DataType(DataType.Date)] gesetzt Daten statt [DataType(DataType.DateTime)].

Ändern dieses Attribut festgelegt es auf.

Andere Tipps

Ich habe versucht, Ihr Szenario unter MVC 2 und MVC 3 und unter MVC 3 funktioniert wie erwartet.

Genau so verstehe ich das richtig Sie EditorTemplates in Shared haben, die enthält Ihre ComplexModel.ascx Editor und in Ihrem ComplexModel.ascx rufen Sie Html.EditorFor(m => m.ADate).

Ich bin nicht sicher über Aktuelles zu MVC 2 in Bezug auf das, aber MVC 3 funktioniert es auf jeden Fall.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top