Hay dos problemas aquí:
- Sí, puede ejecutar Razor View Engine fuera del contexto de un dominio de aplicación ASP.NET, como se explica en el blog de Andrew: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of -aspnet-revisado-para-mvc3-rc.html
- Sin embargo, Razor todavía se centra principalmente en generar marcado tipo xml (por ejemplo, HTML) en el sentido de que el analizador de Razor utiliza la presencia de
<tags>
para determinar la transición entre el código y el marcado. Probablemente pueda usarlo para generar cualquier texto, pero puede tener problemas cuando su salida no coincide con las suposiciones de Razor sobre cuáles son sus intenciones.
Entonces, por ejemplo, si bien este es un código Razor válido (debido a la <div>
etiqueta):
@if(printHello) {
<div>Hello!</div>
}
El siguiente fragmento no es válido (porque Hello! Todavía se trata como código):
@if(printHello) {
Hello!
}
Sin embargo, hay una <text>
etiqueta especial que se puede usar para forzar una transición para bloques de varias líneas (la <text>
etiqueta no se procesará):
@if(printHello) {
<text>Hello!
Another line</text>
}
También hay una sintaxis más corta para forzar la transición de una sola línea usando @:
:
@if(printHello) {
@:Hello!
}