您如何以与其前身 webforms 相同的风格从 appsettings.json 中读取信息?
Posted
技术标签:
【中文标题】您如何以与其前身 webforms 相同的风格从 appsettings.json 中读取信息?【英文标题】:How do you read from appsettings.json in the same style as it's predecessor, webforms? 【发布时间】:2021-08-20 22:25:35 【问题描述】:在WebForms
中,我们将有一个web.config
文件,我们可以使用ConfigurationManager.AppSettings["SomeKey"];
从键值对中检索值。
我刚刚在.NET 5.0
开始了一个项目,似乎没有一种简单的方法可以做一些看似微不足道的事情?
我在网上查看了有关如何使用@
表示法从.cshtml
文件访问appsettings.json
中这些密钥的教程,但未能成功。
appsettings.json:
"Logging":
"LogLevel":
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
,
"AllowedHosts": "*",
"MyKey": "wwwwwwwwwww"
Index.cshtml:
<h1>
Title - @ConfigurationManager.AppSettings["MyKey"];
</h1>
以上说明了我想要实现的目标,是否有一种简单的方法可以做到这一点,而不是创建类等,因为我似乎无法遵循他们的示例。
【问题讨论】:
你能链接你正在谈论的教程吗?你也见过this吗? 这些都没有意义/有效。什么是 ApplicationInsights,我将那些 using/inject 放在 .cshtml 的顶部并执行此操作@Configuration.GetSection("ApplicationInsights")["MyKey"];
并且是空的(页面上不显示任何内容)。
【参考方案1】:
To access configuration settings 在 .NET 项目的视图中,您应该能够使用 @
注释。这是通过将配置注入页面来完成的:
@page
@model Test5Model
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
Configuration value for 'MyKey': @Configuration["MyKey"]
以这个 appsettings.json 为例:
"Logging":
"LogLevel":
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
,
"AllowedHosts": "*",
"Test": "Hello World",
"ConnectionStrings":
"SomeContext": "SomeConnectionStringProperties"
,
"SectionOne":
"SectionOneTestVal": "SomeTestValue"
要访问Test
键,只需使用@Configuration["Test"]
,而要访问SectionOne
部分中的SectionOneTestVal
“键”,您可以执行Configuration.GetSection("SectionOne")["SectionOneTestVal"]
之类的操作:
因此将其添加到视图中:
<p>@Configuration["Test"]</p>
<p>@Configuration.GetSection("SectionOne")["SectionOneTestVal"]</p>
...会产生:
有关更多信息和示例,另请查看dependency injection into views。
【讨论】:
以上是关于您如何以与其前身 webforms 相同的风格从 appsettings.json 中读取信息?的主要内容,如果未能解决你的问题,请参考以下文章