MVC Razor Декларативные помощники в App_Code не используют пространства имен web.config - PullRequest
3 голосов
/ 07 июня 2011

У меня проблема с использованием декларативных помощников в каталоге App_Code.Я создал базовую веб-страницу для своих просмотров, в которой есть мой метод локализации.У меня также есть коллекция перечислений для моих помощников, которые вращаются вокруг имен CSS.

Например, DataRole - это перечисление, ссылающееся на разрешенные классы CSS для отображения, а GetStr - метод моего базового класса длявыведите значение локализации метки:

@helper ReadOnlyColumns(DataRole role, string label, string contents)
{
  <div class="@role">@GetStr(label)</div>
}

В моем файле web.config есть определение базового типа страницы и правильные пространства имен для включения.Эти настройки работают для представлений, не входящих в каталог App_Code.

У кого-нибудь есть идеи, как заставить работать каталог App_Code?Должен ли я поместить в него файл web.config?Я в растерянности.

Я знаю, что вы можете делать @implements и @using, и это работает.Но я пытаюсь заложить основу для нашего программного обеспечения и не считаю необходимым включать вещи, которые будут использоваться абсолютно на каждой странице, которую мы пишем.

Редактировать, это мои настройки web.config вкорень и каталог всех просмотров:

<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>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="Company.Web.BaseWebViewPage">
        <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="Company.Web" />
            <add namespace="Company.Web.Enums" />
        </namespaces>
    </pages>
</system.web.webPages.razor>

Спасибо,

Брэд

1 Ответ

5 голосов
/ 10 июня 2011

Страницы в App_Code жестко закодированы в WebRazorHostFactory для наследования HelperPage класса .

Вы не можете изменить это значение по умолчанию.

...