Há duas questões aqui:
- Sim, você pode executar o Razor View Engine fora do contexto de um domínio de aplicativo ASP.NET, conforme explicado no blog de Andrew: http://vibrantcode.com/blog/2010/11/16/hosting-razor-outside-of -aspnet-revisado-for-mvc3-rc.html
- No entanto, o Razor ainda está focado principalmente na geração de marcação do tipo xml (por exemplo, HTML) no sentido de que o analisador Razor usa a presença de
<tags>
para determinar a transição entre o código e a marcação. Você provavelmente pode usá-lo para gerar qualquer texto, mas pode ter problemas quando sua saída não corresponder às suposições do Razor sobre quais são suas intenções.
Então, por exemplo, embora este seja um código Razor válido (por causa da <div>
tag):
@if(printHello) {
<div>Hello!</div>
}
O seguinte snippet é inválido (porque Hello! Ainda está sendo tratado como código):
@if(printHello) {
Hello!
}
No entanto, há uma <text>
tag especial que pode ser usada para forçar uma transição para blocos multilinhas (a <text>
tag não será renderizada):
@if(printHello) {
<text>Hello!
Another line</text>
}
Também existe uma sintaxe mais curta para forçar uma única linha a fazer a transição usando @:
:
@if(printHello) {
@:Hello!
}