.NET
Nice 2 Know: Razor ViewEngine ausserhalb von MVC nutzen
Posted on .Wenn ihr ASP.NET MVC ab Version 3 schon mal benutzt habt dann wird euch die Razor ViwEngine kein Fremdword mehr sein. Oft kommt man aber gar nicht drauf, dass man diese praktische Templating-Engine auch außerhalb von MVC benutzen kann.
So kann man dieses Feature super gebrauchen wenn die App E-Mails versenden soll und man größere E-Mail Templates nutzen will. Das Schöne an der Razor Engine ist, dass man diese sehr einfach integrieren kann und der Code sehr verständlich und sauber bleibt.
Die Installation erfolgt hier wie so oft sehr einfach über NuGet:
Jetzt ist man im Grunde schon fertig und kann sofort loslegen. Starten wir mit dem Model, das die Razor Engine für uns verarbeiten wird. Dies ist eine gewöhnliche Klasse (POCO):
public class TipReminder
{
public string DisplayName { get; set; }
public string EmailAdress { get; set; }
public DateTime LastLogin { get; set; }
}
Jetzt legen wir uns ein kleines Template an, das den Inhalt der Email darstellen soll:
@model Projekt.Domain.AppUser
<!DOCTYPE html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Newsletter</title>
</head>
<body>
<div>
<h2>Hallo @Model.DisplayName</h2>
<p>Es ist wieder Zeit für einen Newsletter</p>
<p>Dein letzter Login war am @Model.LastLogin - das ist schon lange her!</p>
<p>Schau doch mal wieder vorbei.</p>
<hr />
<p>Bitte antworten Sie nicht auf diese EMail</p>
<p>Viel Spaß weiterhin!</p>
</div>
</body>
</html>
Man beachte hier besonders die Zeilen 10 und 12 wo wir auf das Model zugreifen.
Wenn ihr ASP.NET MVC 3 oder 4 schon mal genutzt habt, werdet ihr feststellen, dass alles exakt der Syntax einer View gleicht, sogar die Definition der strickten Typisierung auf das Model oben.
Die eigentliche Nutzung ist dann ein Kinderspiel:
Error: Page not found
The requested URL was not found on this server.
Wirklich interessant ist hier nur Zeile 3 wo wir den eigentlichen Aufruf an die RazorEngine tätigen. Die Parse-methode benötigt lediglich das Template als String und ein Model zur Verarbeitung.
Das ist ein wirklich praktisches Feature um die Templates auf einfachste Weise aus dem Programm herauszulösen. Das Ganze ist nicht neu (gibt’s schon seit fast 2 Jahren) man muss nur wissen, dass es möglich ist. 🙂
Sebastian Gross
http://www.bigbasti.comSebastian Gross arbeitet in Bielefeld als Softwareentwickler für .NET und Java im Bereich Web.Als Fan der .NET-Plattform lässt er sich kein Userguppen Treffen und Community Event im Raum OWL entgehen.Dabei hat er eine besondere Vorliebe für das ASP.NET MVC Framework und für das Test Driven Development (TDD) entwickelt.
There are no comments.