首页 > 解决方案 > 注入 IOptions 的最佳方法是什么在_布局中

问题描述

我使用 ASP.NET Core Razor Pages 构建了一个小型 Web 应用程序,但我想使用IOptions<T>app.json. _Layout谢谢!

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

解决方案


您可以使用@injectRazor 指令将服务注入您的 Razor 视图。当然,这也包括选项。因此,如果您MyOptions已经配置了一些类(例如services.Configure<MyOptions>(options => { … }),在 Startup 类中使用),那么您可以将选项注入.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>

推荐阅读