如何从设置json到mvc 6视图获取数据



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

if(Settings.enable_logo_text)
{
<span>Settings.logo_text</span>
}

关于新配置和选项的官方文档非常好,我建议先看一下。

按照那里提供的指导,首先为您的设置创建一个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文件,请确保您还构建了包含该json文件的Configuration对象。例如:

public Startup(IHostingEnvironment env)
{
    // Set up configuration sources.
    var builder = new ConfigurationBuilder()
        .AddJsonFile("appsettings.json")
        .AddEnvironmentVariables();
    Configuration = builder.Build();
}

通过这种方式,您可以在appsettings.json文件中配置您的值,这些值将在Settings类上设置:

{
  ...
  "enable_logo_text": true,
  "logo_text": "My Logo Text"
}

最后,您可以通过添加IOptions<Settings>依赖项来访问配置的值。最直接的方法是直接将选项注入视图(如文档中所述),但您可能需要考虑将选项注入控制器,并以更可控的方式将其传递到视图:

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

相关内容

  • 没有找到相关文章

最新更新