我正在将一个来自Infragistics的控件库引用添加到我的ASP .NET MVC 3 Razor视图中,以使用它们的控件。我已经将dll作为引用添加到项目中。
如果我在文件顶部添加using Infragistics.Web.Mvc
,那么我的控制器可以正常访问命名空间。
有两种方法可以告诉视图包含命名空间。第一种方法是在视图顶部放置@using Infragistics.Web.Mvc
。但是,如果我尝试这样做,我会收到以下错误:
The type or namespace name 'Infragistics' could not be found (are you missing a using directive or an assembly reference?)
第二种方法是在视图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。
我做错了什么?