Я добавляю ссылку на библиотеку управления из Infragistics для использования своих элементов управления в своих представлениях ASP.NET MVC 3 Razor. Я уже добавил dll в качестве ссылки на проект.
Мои контроллеры могут получить доступ к пространству имен, если я добавлю using Infragistics.Web.Mvc
в начало файла.
Существует два способа показать представлениям пространство имен. Во-первых, введите @using Infragistics.Web.Mvc
в верхней части вашего представления. Однако, если я попробую это, я получаю следующую ошибку:
Тип или имя пространства имен "Инфрагистика" не удалось найти (вы отсутствует директива 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.
Что я делаю неправильно?