2012-12-31 84 views
14

我不能將我的項目名稱空間添加到web.config,以便Razor視圖引擎包含我的項目中所有頁面的項目名稱空間?像這樣:將我的項目名稱空間添加到MVC web.config

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
     <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization"/> 
     <add namespace="System.Web.Routing" /> 

     <add namespace = "MyProjectNamespace.NestedNamespace"/> 
     </namespaces> 
    </pages> 
    </system.web.webPages.razor> 

它不工作。

+0

對我來說看起來不錯。通過「它不工作」你的意思是你沒有智能感知或頁面加載錯誤?你有沒有嘗試重建應用程序? – Kaido

回答

19

這是一個老問題,但顯然還是有一點與Visual Studio( 2015年 2017年截至目前)的問題。將命名空間添加到Views文件夾中的web.config文件後,關閉並重新打開所有視圖。命名空間沒有被識別,並且視圖會持續拋出運行時錯誤,直到我關閉它們。

+2

謝謝你特別指出VS2015。我坐在這裏,p着腦袋想着......我知道你是這麼做的,跆拳道? – Tommy

+0

GOTT dangit!我花了30分鐘試圖找出這個垃圾!哎呀! – Hill

+0

拯救了我的生命。作爲@Hill,我花了很多時間嘗試不同的事情。希望MS與VS2015的Update 4一起解決這個問題。非常感謝@DVK! – ClownCoder

26

需要將命名空間添加到Views文件夾中的web.config文件中,而不是根項目的web.config。這將只爲該視圖文件夾中的所有cshtml文件導入命名空間。如果您的項目具有MVC區域,則每個區域都有自己的Views文件夾和一個單獨的視圖web.config文件。要將命名空間導入到這些視圖中,您需要將命名空間添加到每個區域的視圖文件夾的web.config中。

+2

只是爲了體會(因爲它絆倒了我)的意見的根,而不是在視圖文件夾的任何子文件夾!還要確保資源文件是公開的。 – Liath

-3

您還可以將@using語句添加到_ViewStart.cshtml文件,該文件將覆蓋同一文件夾或任何子文件夾中的所有視圖。

@using MyProjectNamespace.NestedNamespace 
+1

它不起作用 – Mohammadreza

相關問題