2009-06-10 6 views
1

Ich habe eine Anwendung, die ein paar verschiedene Mails generiert. Diese E-Mails werden derzeit mit einem Zeichenfolgen-Generator erstellt, der eine HTML-basierte Zeichenfolge generiert, bei der es sich um den E-Mail-Inhalt handelt..NET Vorlage Dateien

Dieser Ansatz wird unordentlich. Der Code besteht aus Objekten, die mit HTML usw. gemischt sind. Ich möchte eine Vorlage haben, die der in MVC verwendeten ähnlich ist, und dann die Ausgabe dieser Vorlage verwenden, um sie der Mail hinzuzufügen.

Kann dies getan werden mit z. B. T4 hinzufügen, wie Wunde, die Arbeit oder sollte ich einen anderen Ansatz dafür verwenden?

Die Vorlagen müssen nicht zur Laufzeit editierbar sein, auch wenn das nett wäre.

Antwort

2

Es kann mit T4 erfolgen. Es würde genau so funktionieren, wie es in MVC funktioniert.

Sie sollten erwägen, die Clarius T4 Editor zu erhalten, da Visual Studio nicht mit Intellisense für T4 aus der Box kommt, und der Clarius T4-Editor kann das zur Verfügung stellen.

+0

Haben Sie gute Beispiele dafür, wie Sie eine Vorlage mit einem Objekt füttern und dann dieses Objekt in der Vorlage verwenden und die generierte Zeichenfolge zurückgeben? – Riri

+0

TextTransform.exe ist das Befehlszeilen-Tool, das dies tut. Sehen Sie http://msdn.microsoft.com/en-us/library/bb126461.aspx –

+0

Scott Hanselman gibt eine ziemlich gute Demonstration davon in seinem NerdDinner-Gespräch bei http://videos.visitmix.com/MIX09/T49F. Die Diskussion über T4-Vorlagen beginnt um 23:10 Uhr (23 Minuten, zehn Sekunden nach dem Gespräch). –

1

Haben Sie darüber nachgedacht, nur XSLT zu verwenden? Sie können HTML-Dokumente einfach aus XML-Rohdaten erstellen, indem Sie eine XSL-Transformation in .Net

anwenden. Wir speichern XSL-Vorlagen in der Datenbank und verwenden einen einfachen NAME/VALUE-Paaransatz, um die Vorlagen im Code aufzufüllen. Es ist sehr effektiv und flexibel und die Ausgabe kann einfach an den Browser weitergeleitet werden. Alternativ können Sie die einzelnen Vorlagen auch in Dateien auf dem Server speichern und auf diese Weise laden.

Wie auch immer, the amount of code to implement this is relatively simple, und .NET hat viele Klassen vorhanden, um dies zu erleichtern. Wenn Sie ein Beispiel dafür möchten, wie wir das implementiert haben, hinterlassen Sie einen Kommentar und ich werde einige Codebeispiele an diese Antwort anhängen.

+0

Ja, bitte. Ich würde gerne die Proben sehen. –

Verwandte Themen