2011-02-16 67 views
17

因此,我在運行時與我的asp.net mvc3應用程序發生錯誤,當我檢查代碼時,發現它有一條紅線,錯誤列表沒有定義這樣的函數但是它仍然會編譯好。該錯誤僅在運行時顯示?我正在使用T4MVC,我希望它能幫助我躲避這樣的問題!?razor語法錯誤編譯時不應編譯

這是設計還是我在這裏做錯了什麼?

enter image description here

上面的代碼不應該編譯因爲如果沒有這些方法!

無法在運行:

enter image description here

這有點兒事情發生了很多,不只是聯合國定義的方法,但即使變量等

+0

的可能的複製[編譯在ASP.NET MVC視圖(HTTP://計算器。 com/questions/383192/compile-views-in-asp-net-mvc) – 2016-09-29 16:26:43

回答

29

這是由設計。 MVC視圖的構建默認是禁用的。您可以啓用你的MVC觀點構建在Visual Studio這樣的:

  • 右鍵單擊您的項目在Visual Studio
  • 卸載項目
  • 編輯項目

  • 變化MvcBuildViews from 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,解釋如何避免錯誤:

It is an error to use a section registered as allowDefinition='MachineToApplication' beyond application level. This error can be caused by a virtual directory not being configured as an application in IIS

+0

+1 yay!真棒!我知道在某個地方有一個未知的功能,我只追查了2個錯誤,這些錯誤稍後會讓我失望! – gideon 2011-02-16 09:09:21