2016-10-03 82 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