默认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