2011-03-07 15 views
6

我的觀點是有問題找到一個類位於我的一個參考。 此引用是在項目之外構建的dll。MVC3 Views無法找到添加的引用類

視圖總是給錯誤:

The type or namespace name 'Company' could not be found (are you missing a using directive or an assembly reference)

這裏是控制器。那裏沒有問題。

using Company.Entities; 

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

這裏是視圖。該錯誤發生在@Model行。

@model Company.Entities.Person 

@{ 
    ViewBag.Title = "Bob"; 
} 

<h2>Find</h2> 

我的視圖/ 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> 

我檢查了類似的線程這樣one但無濟於事。

這裏是屏幕

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 

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

上的消息如果我剝離出該組件的任何提及(出的web.config的 - 沒有@using statments)。加載時出現相同的錯誤消息,但針對此行

public class _Page_Views_Home_Find_cshtml : System.Web.Mvc.WebViewPage<Company.Entities.Person> { 
+0

您是否嘗試關閉您的視圖並重新打開它?或者當瀏覽你的視圖時,你是否得到了死亡的黃色屏幕? – Jimmy 2011-03-07 18:07:07

+0

你收到什麼錯誤? – 2011-03-07 18:10:56

+0

編譯不會錯誤地檢查視圖中的語法錯誤,您確定問題出在視圖中嗎? – Jimmy 2011-03-07 18:11:56

回答

7

用了它一段時間後,我最終解決了它。

我不得不下主web.config中(未下的視圖的那一個)

樣品在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> 

謝謝給我建議的人。

+0

出於某種原因,即使這對我也不適用。這使我堅信,這樣的基本事情似乎是不可能的。 – 2014-04-01 13:07:14

4

請務必檢查您的views目錄是否有其他web.config文件。我似乎記得遇到類似的問題,因爲我沒有更新正確的web.config。因人而異。

+0

Hi Hal,感謝您的快速響應,我添加了我的views/web.config的內容。我已經將命名空間添加到views/web.config和/web.config中,但沒有運氣 – Lareau 2011-03-07 18:00:59

2

添加引用

在您使用控件之前,在.cshtml文件中工作。例如:

@model IEnumerable<MyApp.Models.MyModel> 
@using System.Web.UI.WebControls; 

但是你可以把它放在web.config的名字空間標籤下。 這種方式對所有視圖都是全局的。此外,沒有必要指定版本:

<namespaces> 
     <add namespace="System.Web.UI.WebControls" /> 
</namespaces> 
相關問題