在_Layout中注入IOptions <t>的最佳方法是什么

时间:2018-08-29 15:19:32

标签: c# asp.net-core .net-core razor-pages

我使用ASP.NET Core Razor Pages构建了一个小型Web应用程序,但是我想使用IOptions<T>来传递app.json_Layout的设置。 谢谢!

1 个答案:

答案 0 :(得分:4)

您可以使用@inject Razor指令将服务注入到Razor视图中。当然,这还包括选项。因此,如果您已经配置了某个MyOptions类(例如,在Startup类中使用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>