我正在积极开发桌面应用程序、本地和网络服务、一些经典的ASP.NET等,所以我习惯于静态编译和静态代码分析。现在我(终于)学习了ASP.NET MVC 3.0,我看到许多 ASP.NET MVC 专家和经验丰富的开发人员都建议在 ASP.NET MVC 3.0(如果适用)中使用强类型视图。
我猜“强类型”意味着@model=...
在视图代码的顶部编写。但在这样做时,我只让IntelliSense工作,没有进行静态代码检查。我可以在cshtml@model
的语句中写任何我想要的东西,它会编译和运行。因此,也可以编译。事实上,如果我不输入@model,我可以动态地使用任何我想要的具有“兼容”属性和方法的模型。Model.Anything
我习惯于“强类型”,意思是“不会编译”,就像 LINQ 一样,如果你没有得到正确的属性,任何东西都不会编译。@model
除了 IntelliSense 和运行时错误之外,还有其他用途吗?如果实际上不是,为什么将其称为强类型?