Как добавить «использование по умолчанию» на все страницы cshtml? - PullRequest
23 голосов
/ 17 мая 2011

Я создаю свое первое приложение MVC.Net и обнаруживаю, что @using Gideon.Core.Mvc; добавляюсь почти на каждую страницу. Можно ли добавить его по умолчанию на все страницы?

В Asp.Net я могу добавить материал по умолчанию для элементов управления в web.config, надеюсь, это можно сделать и для MVC.Net.

Ответы [ 4 ]

26 голосов
/ 17 мая 2011

Вы можете добавить их в разделе <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>
9 голосов
/ 17 мая 2011

Добавьте их в 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 голосов
/ 20 октября 2017

Для пользователей .Net Core. Если вы создаете веб-проект vanilla, вы можете импортировать пространства имен по умолчанию, добавив файл

_ViewImports.cshtml

в папку Pages.

И определите пространства имен по умолчанию в.

@using test
@namespace test.Pages
2 голосов
/ 03 июля 2014

Поскольку в Google этот вопрос высок, позвольте мне добавить альтернативное решение, совместимое с областью.

Создайте новый класс с именем PreApplicationStart (или любым другим именем, которое вы хотите).*

В Properties\AssemblyInfo.cs добавьте следующую строку:

[assembly: System.Web.PreApplicationStartMethod(typeof(PreApplicationStart), "InitializeApplication")]

При этом пространство имен доступно в каждом представлении проекта (включая представления в областях).Добавление пространства имен к web.config имеет такой недостаток, что если вы используете области, вам в конечном итоге придется добавлять пространство имен к каждому файлу web.config в каждой области.

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