我有一个包含两个项目的解决方案。一个是控制台应用程序,另一个是ASP.NET MVC应用程序。
我的控制台应用程序正在使用实体框架,我想从ASP.NET MVC应用程序访问它的一些数据。
我在asp.net app项目和控制器中添加了对我的控制台应用程序项目的引用,这工作正常,我能够访问数据库上下文并查看数据。
但是,视图会抛出标准“无法找到类型或命名空间名称(您是否缺少using指令或程序集引用?)”异常。
为什么控制器可以看到Console应用程序命名空间但视图不能?
我是否需要在某处添加其他参考资料?
编辑:
这就是using语句的样子:
@model PagedList.IPagedList < PlacesAPI.Models.RootDomain>
@using PagedList.Mvc;
我尝试过没有完全符合资格并且正在执行@using PlacesAPI
但它总是找不到对PlacesAPI
的引用,但它在控制器中工作正常。
编辑:
我在另一个线程上发现了一条评论说如果你使用虚拟源(如我)的外部引用,那么你必须在根web.config文件中添加引用而不是视图web。配置文件。
我尝试添加:
<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,但是它给出了同样的错误。
答案 0 :(得分:3)
问题是我在视图web.config中添加了命名空间引用,但没有添加对程序集的引用。我还需要添加:
<system.web>
<compilation>
<assemblies>
<add assembly="PlacesAPI" />
</assemblies>
</compilation>
</system.web>