带错误的剃刀语法在不应编译时编译

时间:2011-02-16 08:50:55

标签: asp.net-mvc asp.net-mvc-3 compiler-errors razor t4mvc

所以我在运行时使用我的asp.net mvc3应用程序出错了,当我检查代码时,我看到它上面有一个红线,错误列表那里没有这样的函数定义它仍然可以正常编译。错误仅在运行时出现?我正在使用 T4MVC ,我希望它可以帮助我避免这样的问题!?

这是设计还是我在这里做错了什么?

enter image description here

上面的代码不应该编译,因为那里没有这样的方法!

它在运行时失败:

enter image description here

这种事情发生了很多,不仅仅是未定义的方法,甚至是变量等等。

1 个答案:

答案 0 :(得分:33)

这是设计的。默认情况下禁用MVC视图的构建。您可以在Visual Studio中启用MVC视图的构建,如下所示:

  • 在Visual Studio中右键单击您的项目
  • 卸载项目
  • 修改项目

  • MvcBuildViews 的值从false更改为 true
    <?xml version="1.0" encoding="utf-8"?>
    <Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
    ...
    <MvcBuildViews>true</MvcBuildViews>
    ...

  • 重新加载项目

下次编译并且MVC视图中存在错误时,它将无法编译。 缺点是,编译过程需要更长时间。

<强>更新

以下是SO上的answer,解释了如何避免错误:

  

在应用程序级别之外使用注册为allowDefinition ='MachineToApplication'的部分是错误的。此错误可能是由于虚拟目录未配置为IIS中的应用程序