Eine der neuen Funktionen in ASP.NET MVC 2 Preview 1 ist die Unterstützung für das Konzept von Editor-Vorlagen und Anzeige-Vorlagen, mit denen Sie vordefinieren können, wie ein bestimmtes Objekt zur Anzeige oder Bearbeitung mit einem einfachen HTML-Helfer gerendert wird Anruf:
%Vor%Das ist ziemlich cool, aber ich sehe den Unterschied zwischen dieser und einer Teilansicht, die demselben Zweck dient, nicht wirklich. Außerdem, in den Beispielen, die ich gesehen habe, enthalten die Editor-Vorlagen nicht die tatsächlichen Formular-Tags und falls ich einige clientseitige Funktionen für einen bestimmten Editor bereitstellen muss (etwa durch jQuery), kann ich diesen Code nicht sicher platzieren die Vorlage, weil ich kein statisches Handle auf dem Formular habe, dem ich Logik in dem Client hinzufüge. In der Anwendung, an der ich arbeite, habe ich eine Mischung aus Editor-Vorlagen und Teilansichten, die ich rendere, um Inhalte zu bearbeiten. Abhängig von der Komplexität des Formulars erstelle ich einen Editor, weil ich einen Ansatz gewählt habe, aber das führt natürlich zu einer unerwünschten Inkonsistenz der Anwendung.
Warum eine Vorlage über eine Teilansicht verwenden oder umgekehrt? Wenn Sie eine Editor-Vorlage verwenden, ist dies die ideale Methode, um clientseitige Logik dem Editor hinzuzufügen, ohne sie in jede Ansicht zu kopieren, die diesen Editor verwendet?
ScottGu erklärt einige davon in seinem Blogpost über MVC V2 .
Aus dem, was ich erhalte, werden Eingaben für jede Eigenschaft des Objekts erzeugt, das Sie an den Helfer übergeben. Also wenn du das Objekt hast:
%Vor%Und dann einen Editor erstellen:
%Vor%Es erzeugt eine Texteingabe für den Namen des Kunden und einen MyCoolCalendar (ein benutzerdefiniertes Steuerelement) für CoolDate, ohne dass Sie ein benutzerdefiniertes Steuerelement schreiben müssen, um das gesamte Objekt zu umbrechen. Es leitet automatisch den Typ des Steuerelements vom Typ / uihint der Eigenschaft ab. Zumindest habe ich das verstanden, ohne Zeit dafür zu haben, es zu testen.
Hier ist ein Beispiel, das ich gut fand.
Nehmen wir an, Sie haben einen Kunden mit einer Adresse. Sie können keine Adresse für einen NEUEN Kunden erstellen, aber über die Verknüpfung könnten Sie ein Objekt Kunde mit einer Feldadresse haben.
Dann rufen Sie in Ihrer "Create" -Methode für Customer Html.EditorFor(c => c.Address);
auf (und Sie können hier eine benutzerdefinierte Vorlage für Ihre Bedürfnisse erstellen), die ein komplett gefülltes Address-Objekt erzeugt, das Sie vor dem Kunden speichern können, wodurch die Abhängigkeit gelöst wird.
Nun, wenn Sie Referenzdaten haben, z. B. Länderliste oder Staaten oder was auch immer, ist es vielleicht besser, die Teilansicht nur zu verwenden, um sie zu rendern und sich nicht um Assoziation zu kümmern.
Hoffe, das hilft,
-vlad
Tags und Links asp.net-mvc javascript dry partial-views