Il y a deux questions:
- Oui, vous pouvez exécuter le rasoir View Engine en dehors du contexte d'un domaine d'application ASP.NET, comme expliqué dans le blog d'Andrew: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of-aspnet-revised-for-mvc3-rc.html
- Cependant, rasoir est toujours principalement axé sur la génération de balisage xml-like (par exemple HTML) dans le sens où l'analyseur Razor utilise la présence de
<tags>
pour déterminer la transition entre le code et le balisage. Vous pouvez probablement l'utiliser pour générer du texte, mais vous pourriez rencontrer des problèmes lorsque votre résultat ne correspond pas aux hypothèses de Razor sur vos intentions.
Ainsi, par exemple alors que cela est valable code Razor (à cause de l'étiquette <div>
):
@if(printHello) {
<div>Hello!</div>
}
L'extrait suivant est invalide (parce que le Bonjour est toujours traité comme code!):
@if(printHello) {
Hello!
}
Cependant, il y a une étiquette <text>
spéciale qui peut être utilisé pour forcer une transition pour les blocs multi-lignes (la balise <text>
ne sera pas rendu):
@if(printHello) {
<text>Hello!
Another line</text>
}
Il y a aussi une syntaxe plus courte pour forcer une seule ligne de transition en utilisant @:
:
@if(printHello) {
@:Hello!
}
Eh bien, je pensais l'utiliser pour générer des choses comme des e-mails ou du code IronPython à la volée. génération. Puisque ceux-ci n'utilisent pas de balises, il est probablement préférable de regarder d'autres alternatives. Merci d'avoir répondu. – Thomas
@Thomas Razor devrait faire très bien dans ces scénarios, vous allez devoir ajouter ces balises magiques '' ou utiliser '@:' de temps en temps. Une fois que la prise en charge de l'éditeur VS sortira pour la syntaxe de Razor, il sera assez facile de savoir quand les transitions auront lieu. –
marcind