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

Iva*_*nov 3 c# .net-core asp.net-core razor-pages

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

pok*_*oke 7

您可以使用@injectRazor 指令将服务注入到 Razor 视图中。当然,这也包括选项。因此,如果您MyOptions已经配置了某个类(例如services.Configure<MyOptions>(options => { \xe2\x80\xa6 })在 Startup 类中使用),那么您可以将选项注入到.cshtml

\n\n
@inject IOptions<MyOptions> myOptions\n\n<h1>@myOptions.Value.ApplicationTitle</h1>\n<p>@myOptions.Value.ApplicationIntroText</p>\n
Run Code Online (Sandbox Code Playgroud)\n\n

为了避免一直显式访问myOptions.Value,您还可以使用代码块并将结果首先存储在局部变量中:

\n\n
@inject IOptions<MyOptions> myOptions\n@{\n    var opts = myOptions.Value;\n}\n\n<h1>@opts.ApplicationTitle</h1>\n<p>@opts.ApplicationIntroText</p>\n
Run Code Online (Sandbox Code Playgroud)\n