Dot-Net

在 ASP.NET MVC 中添加對視圖的引用

  • December 18, 2013

我正在添加來自 Infragistics 的控制項庫引用,以便在我的 ASP .NET MVC 3 Razor 視圖中使用它們的控制項。我已經添加了 dll 作為對項目的引用。

參考

參考屬性

如果我using Infragistics.Web.Mvc在文件頂部添加 a,我的控制器可以正常訪問命名空間。

有兩種方法可以告訴視圖包含命名空間。第一個是放在@using Infragistics.Web.Mvc視圖的頂部。但是,如果我嘗試這樣做,我會收到以下錯誤:

找不到類型或命名空間名稱“Infragistics”(您是否缺少 using 指令或程序集引用?)

第二種是在視圖 Web.config 的頁面部分中添加對命名空間的呼叫,如下所示:

<system.web.webPages.razor>
  <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=ABCABCABCABCABC" />
  <pages pageBaseType="System.Web.Mvc.WebViewPage">
     <namespaces>
        Other namespaces...
        <add namespace="Infragistics.Web.Mvc"/>
     </namespaces>
  </pages>
</system.web.webPages.razor>

但這也不起作用。

我可以讓它工作的唯一方法是將以下行添加到根 Web.config 文件中:

<system.web>
  <compilation debug="true" targetFramework="4.0">
     <assemblies>
        ...
        <add assembly="Infragistics.Web.Mvc, Version=3.11.1.2010, Culture=neutral, PublicKeyToken=blahblahblah" />
     </assemblies>
  </compilation>

在有關 Web.config 的進一步調查中,我發現通過包含該行它告訴編譯器在編譯 ASP .NET 資源時使用該資源。我不得不使用 SN.exe 來找到 PublicKeyToken。

我究竟做錯了什麼?

我不確定 Infragistics 安裝如何工作或您如何執行您的網站,但您可能需要告訴 Visual Studio 在建構時複製 dll,以便將其包含在 Web 項目中。在探索太多其他選項之前,值得檢查一下。

這是一個例子

在此處輸入圖像描述

查看您的程式碼似乎沒有在 web.config 中放入以下內容:

<pages>
 <namespaces>
   <add namespace="System.Web.Helpers" />
   <add namespace="System.Web.Mvc" />
   <add namespace="System.Web.Mvc.Ajax" />
   <add namespace="System.Web.Mvc.Html" />
   <add namespace="System.Web.Routing" />
   <add namespace="System.Web.WebPages" />

   ...

   <add namespace="Infragistics.Web.Mvc" />
 </namespaces>
</pages>

這告訴您的視圖引擎(剃須刀或其他)也使用 infragistics dll 作為擴展。

如果您使用的是 Razor,還要在 View\web.config 中查找“命名空間”標籤。如果您願意,可以在那裡指定名稱空間。

希望能幫助到你

引用自:https://stackoverflow.com/questions/7117114