ASP.NET MVCの情報源として外せないStackOverflowで↓こんな質問があがってたんです。
Compile Views in ASP.NET MVC - Stack Overflow
ViewPageのコンパイルって先送りされるじゃないですか。 んで、ページを表示させたときに、エラーが出て「あ、そっか」って気付くことも多いと思うんですよね。 対応として、プロジェクトファイルに以下の設定を書いておけばいいって、ことなんだけど面倒じゃないですか。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="PrecompileWeb"> <AspNetCompiler VirtualPath="/MyWebSite" PhysicalPath="c:\inetpub\wwwroot\MyWebSite\" TargetPath="c:\precompiledweb\MyWebSite\" Force="true" Debug="true" /> </Target> </Project>
もっと簡単にできる方法があってですね。 Code rant: Compiling aspx templates using aspnet_compiler
1.ウソコード書いてみる。
ViewData[a+b]なんて書いてるけど、そんな変数宣言もしてないし。 でも、ビルドしてもステータスバーみて分かるとおり「ビルド正常終了」する。
2.プロジェクトプロパティで設定する。
「ビルド後に実行するコマンドライン」に以下を書いておく。 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_compiler.exe -v / -p "$(ProjectDir)\" ※環境によっては違うよ~。
3.もう一度ビルドする。
ちゃんと「ビルド失敗」するよ~。 ViewPage多いとちょっと時間かかるけど、ページみていきなりビックリしたり、ページ見るまでエラーに気がつかないなんてことが無くて、安心だね!
ちなみに、ASP.NET MVCの次のリリース(RC)では「ASP.NET MVC RC版では、プロジェクトのコンパイル・プロセスの一部としてビューを含めたい場合に使用できるビルトインのMSBuildタスクがあります。これにより、アプリケーションにあるすべてのビューやマスターページに含まれる構文やコードが検証され、もし問題があればビルド・エラーが発生します。」(ASP.NET MVCデザイン・ギャラリーとASP.NET MVC RC版におけるビューの改善 - @IT)ってことで、こんな事しなくてもいいみたいだけどね。