Benutzerdefiniertes Gerüst für den Controller

8

Ich benutze Repository-Muster in meiner ASP MVC4-App und ich dachte, es wäre schön, benutzerdefinierte Scaffold-Vorlagen zu erstellen, um zu vermeiden, dass der Code jedes Mal optimiert wird, wenn ich etwas erzeuge.

Ich habe einige Tutorials aus dem Internet verfolgt. Ich kopierte das CodeTemplates-Verzeichnis von ProgramFiles in mein Projekt (nur einige der Dateien) und ich löschte die Custom Tool-Eigenschaft für jedes.

Ich habe 2 Ziele erreicht:

  • überschreibt die Standardvorlage für den Controller: Wenn ich zu Controller & gt; Hinzufügen & gt; Controller gehe und "Controller mit Lese- / Schreibaktionen und Ansichten ...." auswähle, wird meine Vorlage verwendet.
  • füge eine neue Ansichtsvorlage hinzu: Wenn ich zu SomeViewFolder gehe & gt; Add & gt; Ansicht kann ich meine neue Vorlage dort auswählen.

Das, was ich nicht erreichen konnte, war, eine neue Vorlage ControllerWithRepo.tt zu erstellen und in Controller & gt; Add & gt; Controller auswählen zu können. Auch wenn ich ControllerWithRepo.tt erstellt habe, wird es nicht in der Dropdown-Liste angezeigt.

Ich weiß, dass es möglich ist, das zu tun, was ich möchte, indem ich Dinge in ControllerWithContext.tt festdecodiere, aber es scheint eine lahme Lösung zu sein. Ich würde es gerne richtig machen - eine Repository-Klasse anstelle der DbContext-Klasse zu übergeben und den Controller so zu erzeugen, wie ich es möchte.

Gerade jetzt Wenn ich versuche, meine Repository-Klasse als dbcontext zu verwenden, kann das Scaffold nicht ausgeführt werden.

Zusammenfassend, wie kann ich meine eigene Controller-Scaffold-Vorlage für Repository-Muster erstellen?

    
gisek 05.11.2012, 14:40
quelle

1 Antwort

0

Ich konnte das vorhandene ControllerWithRepository überschreiben, indem ich Steve Sanderersons Beitrag on Überschreiben der T4-Vorlagen .

    
barry 05.11.2012 18:36
quelle