2016-10-03 81 views
0

我有一個包含兩個項目的解決方案。一個是控制檯應用程序,另一個是ASP.NET MVC應用程序。MVC視圖沒有看到對其他項目的引用

我的控制檯應用程序正在使用實體框架,我想從ASP.NET MVC應用程序訪問它的一些數據。

我在asp.net應用程序項目中添加了一個對我的控制檯應用程序項目的引用,並在控制器中工作正常,我能夠訪問數據庫上下文並查看數據。

但是,視圖會拋出標準「無法找到類型或名稱空間名稱(是否缺少using指令或程序集引用?」)異常。

爲什麼控制器可以看到控制檯應用程序命名空間,但視圖不能?

我是否需要在某處添加其他參考?

編輯:

這是使用的語句是什麼樣子:

@model PagedList.IPagedList < PlacesAPI.Models.RootDomain> 
@using PagedList.Mvc; 

我已經試過沒有完全限定,做@using PlacesAPI但它始終未能找到參考PlacesAPI但它在控制器正常工作。

編輯:

我發現另一個線程說,如果你正在使用從如數據庫虛擬源的外部refernece(我是),那麼你必須把根網站的引用註釋。配置文件不是視圖web.config文件。

我嘗試添加:

<sectionGroup name="system.web.webPages.razor" type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"> 
     <section name="host" type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
     <section name="pages" type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" requirePermission="false" /> 
    </sectionGroup> 

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

到根web.config,但它給了同樣的錯誤。

+1

您需要在cshtml文件中使用using語句。 –

+0

我有使用語句,但它引發異常「無法找到類型或名稱空間名稱」 – Guerrilla

+0

它是否完全合格?另外,您可能想要將命名空間添加到Views \ web.config中的pages :: namespaces元素 –

回答

2

問題是我添加了一個命名空間引用,但沒有在視圖web.config中對程序集的引用。我還需要補充:

<system.web> 
    <compilation> 
     <assemblies> 
     <add assembly="PlacesAPI" /> 
     </assemblies> 
    </compilation> 
    </system.web> 
+0

非常感謝!這也解決了我的問題 – fennou