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!
}
<text>
tags mágicas ou usar de@:
vez em quando. Assim que o suporte ao editor VS for lançado para a sintaxe do Razor, será muito fácil dizer quando as transições ocorrem.Verifique RazorEngine , é uma pequena estrutura construída em cima do Razor que permite que você faça isso.
fonte
Dê uma olhada na biblioteca RazorTemplates . É mais leve do que a biblioteca RazorEngine, é thread-safe e tem uma interface mínima muito agradável.
Compilar e renderizar um modelo é tão simples quanto duas linhas de código:
fonte
Tanto o RazorEngine quanto o RazorTemplates já foram mencionados aqui, mas dê uma olhada no RazorMachine . Você pode simplesmente apontar seu aplicativo não MVC para uma pasta ~ / Views de (outro) aplicativo MVC existente, executar enviando o modelo adequado e obter a saída renderizada em 2 linhas de código:
fonte
Gerar código ou texto: você quer dizer como os Modelos T4: http://msdn.microsoft.com/en-us/library/bb126445.aspx ou ferramentas codesmith?
fonte