Razor 如何从设置json到MVC6视图获取数据?

Razor 如何从设置json到MVC6视图获取数据?,razor,json.net,asp.net-core-mvc,Razor,Json.net,Asp.net Core Mvc,我想一次从json文件加载所有设置键值对,并在需要时使用mvc 6查看页面中的设置键值。如果提供最佳解决方案,我将不胜感激。我有一个场景如下 if(Settings.enable_logo_text) { <span>Settings.logo_text</span> } if(设置。启用\u徽标\u文本) { Settings.logo\u文本 } 关于新的配置和选项非常好,我建议先看看 按照此处提供的指导,首先为您的设置创建一个POCO类: public class

我想一次从json文件加载所有设置键值对,并在需要时使用mvc 6查看页面中的设置键值。如果提供最佳解决方案,我将不胜感激。我有一个场景如下

if(Settings.enable_logo_text)
{
<span>Settings.logo_text</span>
}
if(设置。启用\u徽标\u文本)
{
Settings.logo\u文本
}
关于新的配置和选项非常好,我建议先看看

按照此处提供的指导,首先为您的设置创建一个POCO类:

public class Settings
{
    public string logo_text { get; set; }
    public bool enable_logo_text { get; set; }
}
更新启动类的
ConfigureServices
方法,以便从配置的配置中读取设置,然后作为服务提供,可以在需要时注入:

public void ConfigureServices(IServiceCollection services)
{
    ...

    services.Configure<Settings>(Configuration);
    services.AddOptions();
}
通过这种方式,您可以在appsettings.json文件中配置您的值,这些值将在
设置
类中设置:

{
  ...

  "enable_logo_text": true,
  "logo_text": "My Logo Text"
}
最后,您可以通过添加
IOptions
依赖项来访问配置的值。最直接的方法是直接将选项注入视图中(如所解释的),但您可能需要考虑将选项注入控制器并以更可控的方式传递给视图:

@inject IOptions<Settings> Settings
...
@if(Settings.Value.enable_logo_text)
{
    <span>@Settings.Value.logo_text</span>

}
@injectioptions设置
...
@如果(设置.值.启用\u徽标\u文本)
{
@Settings.Value.logo\u文本
}
@inject IOptions<Settings> Settings
...
@if(Settings.Value.enable_logo_text)
{
    <span>@Settings.Value.logo_text</span>

}