RazorGenerator, Vorlagen und @Html

Ich versuche es zu benutzenRazorGenerator als E-Mail-Template-Engine. Ich möchte ein Modell mit den Daten erstellen, die richtigen Teilansichten zusammenstellen und HTML-Code zurückgeben, den ich per E-Mail versenden kann.
Bearbeiten: Zusätzlich zu diesem Workflow müsste jede Lösung als .cshtml-Datei und als .shtml-Datei bearbeitet werden könnenin der Lage sein, in eine DLL kompiliert zu werden. Aus verschiedenen Gründen ist es nicht praktisch, die cshtml-Dateien selbst bereitzustellen. Wenn wir nicht alle unsere Razor-Ansichten in eine einzige Datei einbetten können, können wir diesen Vorschlag nicht verwenden. Daher RazorGenerator.

Bisher habe ich jeden Teil abgesehen von den Teiltönen ausgearbeitet. Wenn ich versuche, @ Html.Partial () in einer Vorlagendatei zu verwenden, erhalte ich:The name 'Html' does not exist in the current context.

Beyogen aufdiese Antwort, Ich weiß das@Html ist standardmäßig nicht Teil von Razor, und es gibt viele Antworten, wie man ein erstelltHtmlHelper in einem Controller. Ich muss jedoch eine in einer Vorlage erstellen, die die nicht hatControllerContext dass ich diesen Beispielen folgen müsste.

Ich habe auch versucht, @Include zu verwenden, aber die RazorGenerator-Vorlage scheint dies nicht zu unterstützen.Bearbeiten: Ich habe auch versucht, eine neue Klasse zu erstellen, die von geerbt wurdeTemplateBase<> und kopierte alle Funktionen vonRazorTemplateBase, aber ich versteheNullReferenceExceptions auf der@Include Linie.

Meine Hauptfrage lautet also: Gibt es eine bessere Möglichkeit, eine andere Razor-Datei (mit Modell) in meine Datei aufzunehmen?

Zweitens, wenn es keinen besseren Weg gibt, wie kann ich den HtmlHelper erstellen lassen?

Für Kopfgeld bearbeiten: Um es noch einmal zu wiederholen: Die vier Dinge, die ich für eine akzeptable Antwort benötige, sind:

Die Fähigkeit zum Bearbeiten.cshtml Dateien mit dem Standardeditor (kein "Speichern als String" oder ähnliches)Die Fähigkeit, alles in eine einzige DLL zu kompilieren, die mit unserem aktuellen Build-System bereitgestellt werden kann (wir können nicht viele einzelne .cshtmls bereitstellen)Die Möglichkeit, eine .cshtml-Datei von einer anderen zu referenzieren und ein Modell zu übergeben - entspricht@Includes oder@Html.Partial (Beide sind absolut akzeptabel, wenn sie funktionieren.)Die Möglichkeit, das Ergebnis mit Anhängen per E-Mail zu versenden. (Ich habe bereits Code dafür, wenn das Ergebnis ein String ist oder in einen konvertierbar ist.)

Momentan kann ich die meisten Kombinationen von drei davon zum Laufen bringen, aber ich kann nicht alle vier auf einmal bekommen. Ich bin offen für neue Bibliotheken, die RazorGenerator ersetzen oder einen Teil von dem, was ich bereits habe, wegwerfen, solange das Ergebnis nach Bedarf funktioniert.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage