Hier gibt es zwei Probleme:
- Ja, Sie können die Razor View Engine außerhalb des Kontexts einer ASP.NET-App-Domäne ausführen, wie in Andrews Blog erläutert: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of -aspnet-überarbeitet-für-mvc3-rc.html
- Razor konzentriert sich jedoch nach wie vor hauptsächlich auf das Generieren von XML-ähnlichen Markups (z. B. HTML) in dem Sinne, dass der Razor-Parser das Vorhandensein von verwendet
<tags>
, um den Übergang zwischen Code und Markup zu bestimmen. Sie können es wahrscheinlich verwenden, um Text zu generieren, aber es kann zu Problemen kommen, wenn Ihre Ausgabe nicht den Annahmen von Razor über Ihre Absichten entspricht.
So zum Beispiel, während dies ein gültiger Razor-Code ist (wegen des <div>
Tags):
@if(printHello) {
<div>Hello!</div>
}
Das folgende Snippet ist ungültig (da das Hello! Immer noch als Code behandelt wird):
@if(printHello) {
Hello!
}
Es gibt jedoch ein spezielles <text>
Tag, mit dem ein Übergang für mehrzeilige Blöcke <text>
erzwungen werden kann (das Tag wird nicht gerendert):
@if(printHello) {
<text>Hello!
Another line</text>
}
Es gibt auch eine kürzere Syntax, um eine einzelne Zeile zum Übergang zu zwingen, indem @:
:
@if(printHello) {
@:Hello!
}
<text>
Tags hinzufügen oder ab@:
und zu verwenden. Sobald die Unterstützung des VS-Editors für die Razor-Syntax herauskommt, ist es ziemlich einfach zu erkennen, wann die Übergänge auftreten.Überprüfen Sie RazorEngine , es ist ein kleines Framework, das auf Razor basiert und es Ihnen ermöglicht, dies zu tun.
quelle
Schauen Sie sich die RazorTemplates- Bibliothek an. Es ist leichter als die RazorEngine-Bibliothek, threadsicher und hat eine sehr schöne minimale Benutzeroberfläche.
Das Kompilieren und Rendern einer Vorlage ist so einfach wie zwei Codezeilen:
quelle
Sowohl RazorEngine als auch RazorTemplates werden hier bereits erwähnt, aber sehen Sie sich RazorMachine an . Sie können Ihre Nicht-MVC-App einfach auf einen ~ / Views-Ordner einer (anderen) vorhandenen MVC-App verweisen, mit dem Senden des richtigen Modells ausführen und die gerenderte Ausgabe in zwei Codezeilen erhalten:
quelle
Code oder Text generieren: Sie meinen wie T4-Vorlagen: http://msdn.microsoft.com/en-us/library/bb126445.aspx oder Codesmith-Tools?
quelle