aspnet_compiler не может скомпилировать веб-проект, содержащий представления Razor, если импорт пространства имен механизма просмотра определен в global.asax - PullRequest
1 голос
/ 04 ноября 2010

Я только что попытался построить новый проект MVC с Razor Views, используя наш стандартный скрипт сборки (грабли, но это не важно).

Когда я разрабатывал проект, я заметил, что Razor в настоящее время не учитывает импорт пространства имен в web.config, но позволяет включать пространства имен в global.asax.Я на самом деле доволен этим, поскольку не вижу необходимости настраивать импорт, если он затем ломает все ваше приложение.

Однако при использовании aspnet_compiler для компиляции сайта он не запускаетglobal.asax и т. д. не импортирует пространства имен, и ни одно из представлений не будет скомпилировано.Есть ли способ обойти это, в идеале я хотел бы попытаться скомпилировать свои представления как часть сценария сборки, чтобы как можно быстрее ловить ошибки, но на этом этапе я был бы рад просто опубликовать сайт из сборкисценарий.

Ответы [ 2 ]

4 голосов
/ 04 ноября 2010

См. Этот ответ:

Как добавить дополнительные пространства имен на страницы Razor вместо объявления @using?

В двух словах, механизм представления Razor имеет свой собственныйраздел конфигурации, в который можно импортировать пространства имен, на которые вы хотите ссылаться в представлениях 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="System.Web.Mvc.WebViewPage">
    <namespaces>
      <add namespace="MyCustomHelpers" />
    </namespaces>
  </pages>
</system.web.webPages.razor>
0 голосов
/ 04 ноября 2010

Вы можете попробовать метод PreAppStart: http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...