BigBastis Blog

Nice 2 Know: Razor ViewEngine ausserhalb von MVC nutzen

Introduction

user

Sebastian Gross

Sebastian 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.


LATEST POSTS

Handling too long scrollspy menus 10th June, 2015

Java: Create ZIP archive 23rd March, 2015

.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:



404 Page not found

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. 🙂

profile

Sebastian Gross

http://www.bigbasti.com

Sebastian 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.

Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

View Comments (0) ...
Navigation