Mi chiedevo se le viste del rasoio potrebbero essere compilate, come le viste basate su WebForm?È possibile compilare le viste del rasoio?
Ha senso compilare visualizzazioni Razor e perché qualcuno dovrebbe voler farlo?
Mi chiedevo se le viste del rasoio potrebbero essere compilate, come le viste basate su WebForm?È possibile compilare le viste del rasoio?
Ha senso compilare visualizzazioni Razor e perché qualcuno dovrebbe voler farlo?
Sì, è possibile. Date un'occhiata al seguente post: Compile your asp.net mvc Razor views into a seperate dll
È una guida "passo dopo passo" su come compilare le viste del rasoio in una dll separata. Non so se questo è ciò che miri a fare ma sicuramente ti porterà nella giusta direzione.
Questa risposta è ormai superata, ora dovresti fare riferimento a questo post: http://blog.davidebbo.com /2011/06/precompile-your-mvc-views-using.html – Quango
Sì, è possibile. In effetti, il miglior esempio che posso pensare sarebbe un motore di template di email. Se si compila e si memorizza nella cache il modello, è possibile rimuovere rapidamente le e-mail senza dover ricominciare da capo l'analisi.
Questo è un buon esempio dell'uso di Razor anche al di fuori di MVC.
Edit:
Ecco un post su questo argomento così:
How to Detect Errors of Our ASP.NET MVC Views on Compile Time
per rendere la vostra vista da compilare, eseguire le seguenti operazioni;
vedere il seguente codice;
<!--There some lines of code here and I deleted them to get to the point quickly-->
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<MvcBuildViews>false</MvcBuildViews>
cambiamento il valore del tag MvcBuildViews da false
a true
dopo che salvare e ricaricare il vostro progetto .
dopo aver compilato la soluzione per compilarlo, vedrai che anche la tua vista verrà compilata.
NOTA: per verificarlo, interrompere il codice in una delle tue visualizzazioni di proposito e provare a compilare. vedrai che riceverai un messaggio di errore.
Farò una prova per vedere cosa succede. –
avrebbe dovuto funzionare. Hai provato? – tugberk
Dopo questa modifica ho iniziato a ricevere il messaggio di errore "allowDefinition = 'MachineToApplication' beyond application level" 'durante la creazione della mia soluzione. La soluzione era eseguire _Clean Solution_ in * entrambe * le modalità di debug e release. –
Il controllo MvcBuildViews è eccellente ma aggiunge una penalità di 5-10 secondi per la creazione della tua app Web se è abbastanza complessa. Non memorizza nella cache l'output della compilation, quindi esegue una compilazione completa di tutte le visualizzazioni ogni volta.
ho trovato un buon compromesso seguendo il above advice e l'aggiunta di un attributo Condizione:
<MvcBuildViews Condition=" '$(Configuration)' == 'Release' ">true</MvcBuildViews>
ci aspettiamo ReSharper per segnalare eventuali errori nelle viste in ogni caso e lo sviluppatore può sempre costruire nella configurazione di rilascio come test - abbiamo uno script "preflight" che gli sviluppatori eseguono in modo che possano facilmente assicurarsi che gli obiettivi dei pacchetti funzionino e così via - e se tutto ciò non riesce, il server di build lo prenderà.
Forse questo trucco è ovvio, ma ho iniziato solo a imparare correttamente su msbuild piuttosto che scrivere script Powershell per queste attività. Spero che questo sia utile a qualcuno.
Questo è puro splendore :) – Korayem
Tecnicamente parlando, sono compilati dal compilatore just in time. È inoltre possibile abilitare la creazione di viste per non riuscire con una casella di controllo. –
Correlati: http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc –