Sto usando ASP .NET MVC 3 e ho un problema interessante da risolvere che spero di avere qualche consiglio su.È possibile chiamare il Razor Compiler a livello di programmazione da un metodo di controllo?
Ho una pagina che ha un numero di div al suo interno. Il contenuto di ogni div cambia nel tempo e quindi attualmente ho un timer per ogni div che esegue una richiesta $ .ajax al server che restituisce un PartialViewResult con i contenuti aggiornati del div. La vista parziale è piuttosto complessa e fa riferimento ad altre viste.
Il problema con questo approccio è che non scala molto bene. Potrebbe essere che ogni utente abbia un sacco di questi timer in esecuzione e con molti utenti il server viene costantemente colpito. Avrei preferito, quindi, effettuare una singola richiesta al server che restituisce, potenzialmente, più contenuto div quindi sarebbe:
div1 { some html }
div2 { some html }
...
Poi sul client ho potuto mettere ogni bit di HTML nella posizione corretta sulla pagina.
Ho pensato che quello che potevo fare è restituire JSON dal server ma il mio problema è - come ottengo l'HTML? Al momento il compilatore del rasoio verrà eseguito e trasformerà i miei file cshtml di visualizzazione parziale in HTML, ma se restituisco JSON, è possibile chiamare il compilatore del rasoio a livello di programmazione?
Ho trovato Razor Engine qui: http://razorengine.codeplex.com/ che sembra fare ciò che voglio ma è possibile farlo solo con ASP NET MVC vanilla?
Oppure, visto il problema, c'è un modo migliore per raggiungere il mio obiettivo?
Grazie per qualsiasi aiuto!
Perché non creare un'azione che restituisce un nuovo PartialView che restituisce tutte quelle PartialViews? In questo modo il motore viene chiamato dal posto giusto, cioè la vista. – StuperUser