Указание неймспейсов для view-файлов ASP.NET MVC в формате Razor

11.06.2011 12:07 / Артём Волк / 848 просмотров / ...

В приложениях на Web Forms и на ASP.NET MVC с использованием view в формате .aspx можно было указать нужные неймспейсы, которые будут доступны в шаблонах с помощью такой конструкции в Web.config:

<pages>
	<namespaces>
		...
		<add namespace="Snippets.Helpers"/>
		<add namespace="Snippets.Models.ViewModel"/>
		...
		</namespaces>
</pages>

Для Razor'а используется другая процедура компиляции шаблонов, поэтому эти параметры на него не влияют.

Пример конфигурации есть в ~/View/Web.config, мы обычно указываем собственные namespace'ы в Web.config в корне сайта.

<configuration>
	...
	<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>
		...
	</system.web>

	<!-- 
		Namespaces for Razor
	-->
	<system.web.webPages.razor>
		<pages pageBaseType="System.Web.Mvc.WebViewPage">
			<namespaces>
				...
				<add namespace="Snippets.Helpers"/>
				<add namespace="Snippets.Models.ViewModel"/>
				...			
			</namespaces>
		</pages>
	</system.web.webPages.razor>
</configuration>