2015-07-10 26 views
2

在我的ASP.NET MVC 5應用程序中,我在命名空間MyApp.Models中擁有了所有模型。要在我的視圖中使用模型,例如要告訴查看哪種模型應與@model UserLoginModel一起使用,我必須導入名稱空間爲using MyApp.Models在不使用@using的情況下在ASP.NET視圖中全局導入命名空間

這並不是什麼大問題,但我更喜歡將它自動包含在我的每個視圖中,以避免在每個視圖中導致多餘的導入。我發現,在我的意見,文件夾中的web.config文件似乎爲這個工作

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

但它不工作是正確的。所有這些都是由Visual Studio預先生成的。我只爲我的模型添加了<add namespace="MyApp.Models"/>

因此,我發現了一個像我這樣的similar question,但提問者只是說,它應該使用Views/web.config文件,因爲我試過了,回答是遵循他指定給ASP.NET MVC 6的新測試版的問題。但是我使用MVC 5.1.2並且無法使這項工作,他不能在視圖中包含@using命名空間的情況下找到視圖。

+2

這總是適用於我..通常必須關閉我所有的意見,並重新打開它們以擺脫錯誤。 – user5103147

+1

就是這樣 - 我已經玩過重建解決方案,但沒有奏效。現在我重新打開了一切,它的工作原理!謝謝 :) – Lion

回答

1

您可以使用新的_ViewImports.cshtml全局添加名稱空間。內容的一個例子是:

@using Microsoft.AspNet.Identity 
@addTagHelper "*, Microsoft.AspNet.Mvc.TagHelpers" 
相關問題