Bor*_* B. 6 strong-typing type-safety strongly-typed-view asp.net-mvc-3
我正在积极开发桌面应用程序,本地和网络服务,一些经典的ASP.NET等,所以我习惯于静态编译和静态代码分析.现在我(最终)学习ASP.NET MVC 3.0我发现许多ASP.NET MVC专家和经验丰富的开发人员都建议在ASP.NET MVC 3.0中使用强类型视图(如果适用).
我猜测"强类型"意味着写@model=...
在视图代码的顶部.但在这样做时,我只能使IntelliSense工作,没有进行静态代码检查.我可以@model
在cshtml的语句中编写我想要的任何内容,它将编译并运行.因此,Model.Anything
也编译.事实上,如果我不输入@model,我可以动态地使用我想要的具有"兼容"属性和方法的任何模型.
我已经习惯了"强类型",意思是"不会编译",像LINQ到什么,如果你没有得到正确的属性就不会编译.@model
除了IntelliSense和运行时错误之外还有其他任何目的,为什么它被称为强类型,如果它实际上不是?
默认情况下,视图在运行时编译。您可以通过设置以下属性来修改项目文件 (csproj) 以在构建应用程序时编译视图:
<MvcBuildViews>true</MvcBuildViews>
Run Code Online (Sandbox Code Playgroud)
这种方法的缺点是您的构建时间将显着增加。您应该考虑仅针对发布版本将此选项设置为 true。
您可以通过卸载项目来编辑项目文件,右键单击项目并选择编辑项目文件