use*_*414 6 c# asp.net-core-mvc
我需要在 ASP.NET Core 3.1 中的文件appsettings.json中显示值.cshtml,就像我们在 ASP.NET MVC 中所做的那样,如下所示:
@(System.Configuration.ConfigurationManager.AppSettings["SessionExpire"])
Run Code Online (Sandbox Code Playgroud)
您能帮助如何在 ASP.NET Core 3.1 MVC 中实现这一点吗?
Yiy*_*You 20
这是一个在视图中显示 appsettings.json 值的演示:
应用程序设置.json:
{
...
"Test": {
"TestValue": "testValue"
}
}
Run Code Online (Sandbox Code Playgroud)
看法:
@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration
@Configuration.GetSection("Test")["TestValue"]
Run Code Online (Sandbox Code Playgroud)
小智 7
游依依的回答适合当你的价值在一个部分之下时。但是,如果您的值直接位于 的根下appsettings.json,例如:
{
...
"MyValueAtRoot" : "value"
}
Run Code Online (Sandbox Code Playgroud)
然后您需要使用以下命令从您的视图中调用它:
@Configuration.GetValue(typeof(string), "MyValueAtRoot")
Run Code Online (Sandbox Code Playgroud)
另一个有趣的事实:该GetValue方法有一个泛型重载方法,但此类方法的返回值不能直接呈现为 html,因为泛型类型参数会与纯 html 混淆。
如果您确实想使用该方法,则首先必须将返回值存储在 razor 代码块内的变量中,如下所示:
@{ var myValue = Configuration.GetValue<string>("MyValueAtRoot"); }
Run Code Online (Sandbox Code Playgroud)
然后渲染变量:
{
...
"MyValueAtRoot" : "value"
}
Run Code Online (Sandbox Code Playgroud)
注意:对于我的两个示例,您还需要首先调用@using和@inject指令,如接受的答案中所述。
| 归档时间: |
|
| 查看次数: |
7870 次 |
| 最近记录: |