Каков наилучший способ ввести IOptions <T>в _Layout - PullRequest
0 голосов
/ 29 августа 2018

Я создал небольшое веб-приложение, используя ASP.NET Core Razor Pages, но я хочу использовать IOptions<T> для передачи настроек из app.json в _Layout. Спасибо!

1 Ответ

0 голосов
/ 29 августа 2018

Вы можете использовать директиву @inject Razor для добавления сервисов в ваши представления Razor. Конечно, это также включает в себя варианты. Поэтому, если у вас есть какой-то класс MyOptions, который вы настроили (например, с помощью services.Configure<MyOptions>(options => { … }) в классе запуска), вы можете просто вставить параметры в .cshtml:

@inject IOptions<MyOptions> myOptions

<h1>@myOptions.Value.ApplicationTitle</h1>
<p>@myOptions.Value.ApplicationIntroText</p>

Чтобы избежать постоянного доступа к myOptions.Value, вы также можете использовать блок кода и сначала сохранить результат в локальной переменной:

@inject IOptions<MyOptions> myOptions
@{
    var opts = myOptions.Value;
}

<h1>@opts.ApplicationTitle</h1>
<p>@opts.ApplicationIntroText</p>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...