MVC3视图无法找到添加的引用类

Lar*_*eau 6 c# asp.net-mvc reference asp.net-mvc-3

我的观点是在我的一个参考文献中找到一个类时遇到问题.此引用是在项目外部构建的dll.

视图总是出错:

找不到类型或命名空间名称"Company"(您是否缺少using指令或程序集引用)

这是控制器.没问题.

using Company.Entities;

public ActionResult Find()
{
    Person test = Person.SelectByADDistinguishedName("L*", false);
    return View(test);
}
Run Code Online (Sandbox Code Playgroud)

这是视图.该@Model行发生错误.

@model Company.Entities.Person

@{
    ViewBag.Title = "Bob";
}

<h2>Find</h2>
Run Code Online (Sandbox Code Playgroud)

我的Views/Web.config目前看起来像这样

  <system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
      <namespaces>
        <add namespace="System.Web.Mvc" />
        <add namespace="System.Web.Mvc.Ajax" />
        <add namespace="System.Web.Mvc.Html" />
        <add namespace="System.Web.Routing" />
        <add namespace="Company.Entities" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
Run Code Online (Sandbox Code Playgroud)

我检查了类似的线程这样的一个,但无济于事.

这是屏幕上的消息

Line 25:     using System.Web.Mvc.Html;
Line 26:     using System.Web.Routing;
Line 27:     using Company.Entities;
Line 28:     
Line 29:     


Source File: c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET
Run Code Online (Sandbox Code Playgroud)

Files\root\49c9c7db\1f9dd5c8\App_Web_find.cshtml.a8d08dba.xro6gxci.0.cs行:27

如果我删除任何提及的程序集(在web.config之外 - 没有@using statments).我在加载时会收到相同的错误消息但是在此行上

public class _Page_Views_Home_Find_cshtml : System.Web.Mvc.WebViewPage<Company.Entities.Person> {
Run Code Online (Sandbox Code Playgroud)

Lar*_*eau 7

使用它一段时间后,我最终解决了它.

我不得不在主web.config的assembly部分下添加程序集(不是视图下的那个)

web.config的示例.

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Abstractions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Helpers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="System.Web.WebPages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <add assembly="Company, Version=2.0.31.0, Culture=neutral, PublicKeyToken=df9010405db60e6d"/>
  </assemblies>
</compilation>
Run Code Online (Sandbox Code Playgroud)

感谢为我提供建议的人.