Кастомные библиотеки с Razor в MVC 3 - PullRequest
3 голосов
/ 17 января 2011

Итак, я разрабатываю собственную библиотеку для MVC 3 и хочу добавить ее в свой проект.

Я добавил ее в свой web.config.Я добавил сборку и добавил ее в раздел страницы -> пространства имен и ... нет.Не работает.

Я пытался перекомпилировать и т.д. ... но Razor это совсем не нравится.Это не проблема intellisense ... сайт не может работать, если я использую мое определенное пространство имен.

Единственный способ заставить его работать, это использовать следующие операторы:

@using Sample.Helpers

Я не хочу использовать это на страницах.Я хочу иметь возможность развернуть его во многих проектах, и добавление его в файл web.config определенно поможет.

Кто-нибудь сталкивался с этой проблемой?

Ответы [ 2 ]

10 голосов
/ 17 января 2011

Вам необходимо добавить его в ~/Views/web.config, потому что Razor использует другой раздел конфигурации:

<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="YourNamespaceContainingTheHelperMethod" />
        </namespaces>
    </pages>
</system.web.webPages.razor>
5 голосов
/ 17 января 2011

Razor использует другой раздел конфигурации

 <configSections>
    <sectionGroup name="system.web.webPages.razor"
                  type="System.Web.WebPages.Razor.Configuration.RazorWebSectionGroup, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
      <section name="host"
               type="System.Web.WebPages.Razor.Configuration.HostSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
               requirePermission="false" />
      <section name="pages"
               type="System.Web.WebPages.Razor.Configuration.RazorPagesSection, System.Web.WebPages.Razor, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
               requirePermission="false" />
    </sectionGroup>
  </configSections>

<system.web.webPages.razor>
    <pages pageBaseType="Foo.Bar">
      <namespaces>
        <add namespace="Foo.FooBar" />
      </namespaces>
    </pages>
  </system.web.webPages.razor>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...