默認MVC的 View頁面 不參與編譯,當更改view對應model後,view編譯也能通過,或者頁面有錯誤的服務端代碼時也不會報錯。
那麼如何在編譯的時候能讓View中的錯誤也不能通過呢。經過查找找到了方法,本機MVC5.0 適用,其他版本未試。
方法:
一、修改 .csproj 工程文件,用txt記事本打開。
二、找到<Project>節點在
<PropertyGroup>最前面加入
<MvcBuildViews>true</MvcBuildViews>。
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <MvcBuildViews>true</MvcBuildViews> </PropertyGroup>
三、在工程文件最下面,取消<Target Name="AfterBuild">注釋,並加入如下屬性:
<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'"> <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" /> </Target>
搞定。實測效果如圖:
修改工程前不報錯,正常編譯;
修改工程後:
以後不小心改了頁面什麼東西,或者後台model,通用方法後,就能知道關聯頁面哪有哪些了。
還有一種方法在nuget中引入RazorGenerator 。
參考:http://stackoverflow.com/questions/383192/compile-views-in-asp-net-mvc