Gue*_*lla 1 c# asp.net-mvc entity-framework
我有一个包含两个项目的解决方案。一个是控制台应用程序,另一个是 ASP.NET MVC 应用程序。
我的控制台应用程序正在使用实体框架,我想从 ASP.NET MVC 应用程序访问它的一些数据。
我在 asp.net 应用程序项目中添加了对控制台应用程序项目的引用,并且在控制器中工作正常,我能够访问数据库上下文并查看数据。
但是,该视图会引发标准“找不到类型或命名空间名称(是否缺少 using 指令或程序集引用?)”异常。
为什么控制器可以看到控制台应用程序命名空间,但视图却不能?
我需要在某处添加另一个参考吗?
编辑:
using 语句如下所示:
@model PagedList.IPagedList < PlacesAPI.Models.RootDomain>
@using PagedList.Mvc;
Run Code Online (Sandbox Code Playgroud)
我尝试过不完全限定和执行@using PlacesAPI,但它总是找不到参考,PlacesAPI但它在控制器中工作正常。
编辑:
我在另一个线程上发现了一条评论,该评论说如果您使用来自虚拟源(如数据库)的外部引用(我就是),那么您必须将引用放在根 web.config 文件中,而不是视图 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>
Run Code Online (Sandbox Code Playgroud)
和
<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>
Run Code Online (Sandbox Code Playgroud)
到根 web.config 但它给出了相同的错误。
问题是我添加了命名空间引用,但没有添加对视图 web.config 中的程序集的引用。我还需要添加:
<system.web>
<compilation>
<assemblies>
<add assembly="PlacesAPI" />
</assemblies>
</compilation>
</system.web>
Run Code Online (Sandbox Code Playgroud)