Estoy usando ASP .NET MVC 3 y tengo un problema interesante que resolver y espero obtener algunos consejos.¿Es posible llamar al compilador Razor mediante programación desde un método de controlador?
Tengo una página que tiene un número de divs dentro de ella. El contenido de cada div cambia con el tiempo y, por lo tanto, actualmente tengo un temporizador para cada ejecución div que hace una solicitud $ .ajax al servidor que devuelve un PartialViewResult con los contenidos actualizados del div. La vista parcial es bastante compleja y hace referencia a otras vistas.
El problema con este enfoque es que no se escala muy bien. Es posible que cada usuario tenga muchos de estos temporizadores en ejecución y que con muchos usuarios el servidor sea golpeado constantemente. Yo preferiría, por lo tanto, hacer una sola solicitud al servidor que devuelve, potencialmente, múltiples contenidos div por lo que sería:
div1 { some html }
div2 { some html }
...
A continuación, en el cliente podría poner cada bit de HTML en la posición correcta en la página.
Pensé que lo que podría hacer es devolver JSON desde el servidor, pero mi problema es: ¿cómo obtengo el HTML? Por el momento, el compilador razor se ejecutará y convertirá mis archivos cshtml de vista parcial en HTML, pero si devuelvo JSON, ¿es posible llamar programáticamente al compilador de afeitar?
Encontré Razor Engine aquí: http://razorengine.codeplex.com/ que parece hacer lo que quiero, pero ¿es posible hacerlo solo con vainilla ASP NET MVC?
O, dado el problema, ¿hay una mejor manera de lograr mi objetivo?
¡Gracias por cualquier ayuda!
¿Por qué no crear una acción que devuelve una nueva vista parcial que representa todas las vistas parciales? De esta forma, se llama al motor desde el lugar correcto, es decir, la vista. – StuperUser