Können Sie Child Redakteure in ASP.Net MVC 2 haben?
-
04-10-2019 - |
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.
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.