Перейти к содержанию

Выполнение кода в каждом представлении с помощью _ViewStart и _ViewImports

При работе с представлениями неизбежна ситуация, когда во всех представлениях необходимо написать один и тот же код, например @using WebApplication1.Models, если во всех представлениях необходимо ссылаться на объекты из другого пространства имён, или

@{
    Layout = "_Layout";
}

при использовании одного макета. Понятно, что необходимо выносить такой общий код. Для этих целей имеется два механизма: _ViewImports.cshtml и _ViewStart.cshtml.

Импорт общих директив с помощью _ViewImports

Файл _ViewImports.cshtml содержит директивы, которые будут вставляться в верхнюю часть каждого представления. Файл _ViewImports.cshtml можно поместить в любую папку, и он будет применяться ко всем представлениям и вложенным папкам.
Важно отметить, что во _ViewImports.cshtml помещаются только директивы.

Выполнение кода для каждого представления с помощью _ViewStart.cshtml

Если добавить файл _ViewStart.cshtml в папку Pages приложения, код в этом файле будет выполнять в начале каждой страницы Razor (но не для макетов и частичных представлений). Чаще всего этот файл применяется, чтобы задать макет по умолчанию:

@{
    Layout = "_Layout";
}


Если требуется добавить дополнительные директивы или код к файлам в определенных папках, в этих папках создаются дополнительные файлы _ViewImports.cshtml или _ViewStart.cshtml. Они будут выполнены после файлов в корневой папке Pages.
Важно помнить, что имена _ViewStart.cshtml и _ViewImports.cshtml нельзя изменять.


Последнее обновление : 5 ноября 2023 г.
Дата создания : 25 сентября 2022 г.

Комментарии

Комментарии