MVC视图没有看到对其他项目

时间:2016-10-03 19:12:13

标签: c# asp.net-mvc entity-framework

我有一个包含两个项目的解决方案。一个是控制台应用程序,另一个是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,但是它给出了同样的错误。

1 个答案:

答案 0 :(得分:3)

问题是我在视图web.config中添加了命名空间引用,但没有添加对程序集的引用。我还需要添加:

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