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!
}
<text>
etiquetas mágicas o usarlas de@:
vez en cuando. Una vez que salga el soporte del editor VS para la sintaxis de Razor, será bastante fácil saber cuándo se producen las transiciones.Compruebe RazorEngine , es un pequeño marco construido sobre Razor que le permite hacer esto.
fuente
Eche un vistazo a la biblioteca RazorTemplates . Es más liviano que la biblioteca RazorEngine, es seguro para subprocesos y tiene una interfaz mínima muy agradable.
Compilar y renderizar una plantilla es tan simple como dos líneas de código:
fuente
Tanto RazorEngine como RazorTemplates ya se mencionan aquí, pero consulte RazorMachine . Simplemente puede apuntar su aplicación que no es MVC a una carpeta ~ / Views de (otra) aplicación MVC existente, ejecutar con el envío del modelo adecuado y obtener la salida renderizada en 2 líneas de código:
fuente
Generar código o texto: te refieres a plantillas T4: http://msdn.microsoft.com/en-us/library/bb126445.aspx o herramientas de codesmith?
fuente