Dot-Net
在 ASP.NET MVC 中添加對視圖的引用
我正在添加來自 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 中查找“命名空間”標籤。如果您願意,可以在那裡指定名稱空間。
希望能幫助到你


