Как добавить "использование по умолчанию" на все страницы cshtml?
Я создаю свое первое приложение MVC.Net, и я нахожу себя в том числе @using Gideon.Core.Mvc;
почти на каждой странице. Можно ли добавить его по умолчанию ко всем страницам?
В Asp.Net я могу добавить материал по умолчанию для элементов управления в web.config, надеюсь, это можно сделать и для MVC.Net.
Ответы
Ответ 1
Вы можете добавить их в раздел <system.web.webPages.razor>
в Views/Web.config
.
Здесь используется значение по умолчанию:
<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" />
</namespaces>
</pages>
</system.web.webPages.razor>
Ответ 2
Добавьте их в Views/Web.config
. Добавьте свое пространство имен в конец:
<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.Helpers" />
<add namespace="System.Web.Mvc" />
<add namespace="System.Web.Mvc.Ajax" />
<add namespace="System.Web.Mvc.Html" />
<add namespace="System.Web.Routing" />
<add namespace="System.Web.WebPages" />
<add namespace="Gideon.Core.Mvc" />
</namespaces>
</pages>
</system.web.webPages.razor>
Ответ 3
Поскольку этот вопрос высок в google, позвольте мне добавить альтернативное решение, совместимое с областью.
Создайте новый класс под названием PreApplicationStart
(или любое другое имя, которое вы хотите).
public class PreApplicationStart
{
public static void InitializeApplication()
{
System.Web.WebPages.Razor.WebCodeRazorHost.AddGlobalImport("insert.your.namespace.here");
}
}
В Properties\AssemblyInfo.cs
добавить следующую строку:
[assembly: System.Web.PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]
С этим пространство имен доступно во всех представлениях проекта (включая представления в пределах областей). Добавление пространства имен в web.config
имеет этот недостаток: если вы используете области, вам нужно добавить пространство имен в каждый web.config
файл в каждой области.
Ответ 4
Для .Net Core Users, если вы создаете веб-проект в ваниле, вы можете импортировать пространства имен по умолчанию, добавив
_ViewImports.cshtml
Файл в папке Pages.
И определите пространства имен по умолчанию внутри.
@using test
@namespace test.Pages