2010-12-17 7 views
0

In Asp Net Mvc (3) Ich möchte in der Lage sein, eine Standard-Reihe von Ansichten, die mit irgendeiner Art von generischen Viewbuilder (+ Formbuilder) gemacht wird - also muss ich nicht erstellen sie selbst für jeden neuen Controller (und für jedes Modellwechsel). Dies ist für viele Fälle, wo die Ansichten nur die gleiche einfache Struktur haben. Für spezielle Ansichten würde ich natürlich auf den manuellen Ansatz zurückgreifen.Default generische Ansichten von Modellen in Asp Net Mvc

Ich dachte an zwei Optionen.

Ein ist dateilose Ansichten, wo alle notwendigen HTML direkt vom Controller generiert wird (wenn die View-Datei für die tatsächliche Ansicht Alternative fehlt).

Die andere ist gemeinsame Ansichten für jede Ansicht Alternative, die mit Hilfe von Routenregeln eingerichtet werden.

In der freigegebenen Ansicht Datei zur Bearbeitung (zum Beispiel) der Code in etwa so aussehen könnte, den Aufbau die Form Iterieren über die Modell-Eigenschaften: Validating dynamically created fields in ASP.NET MVC

Ich denke, das ist etwas, das der Box herauskommen soll in MVC, und vielleicht fehlt mir etwas? Sonst werde ich es selbst machen. Wäre glücklich zu wissen, wie andere darüber denken (und tun).

Edit: ja, duh, :-), der wichtigste Teil davon kommt tatsächlich aus der Box, ich hatte das verpasst - nur durch Hinzufügen einer Reihe von Standardansichten in/Views/Shared Ordner, der aktiviert ist, wenn die controllerspezifische Sicht fehlt. Genau wie die Fehlermeldung ist sayin:

Die Ansicht 'Bearbeiten' oder ihr Master wurde nicht gefunden. Folgende Standorte wurden gesucht: ~/Views/UserSubCategorySimplified/Edit.cshtml ~/Ansichten/Shared/Edit.cshtml

(Ja Gerüst ist groß und ein Kompromiss - aber nach einer neuen Änderung im Modell einer muss alle Dateien neu erstellen.)

Edit: eine "alle Ansichten für diesen Controller neu erstellen" -Funktion wäre auch gut. (Nach einem Modellwechsel oder T4-Wechsel).

Danke!

Jonas

+0

Das größte Problem mit den Standardeinstellungen ist die völlige Unfähigkeit von MVC, einen vernünftigen Weg zu haben, mit Auswahllisten umzugehen. Ihr Modell kann einen int enthalten, aber Sie möchten dem Benutzer sicher kein int-Feld anzeigen –

Antwort