【问题标题】:C# .NET Core Razor pages appsettings values not accessibleC# .NET Core Razor 页面 appsettings 值无法访问
【发布时间】:2019-12-23 16:17:34
【问题描述】:

当我设置 .NET Core v3 Razor Web 应用程序时,startup.cs 文件包含我需要的内容,以便从 appsettings.json 文件访问设置/值;

public IConfiguration Configuration { get; set; }

public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

根据我应该能够使用的文档;

Configuration["mysetting:variable"]

任何地方都可以访问它。但是我收到构建错误“当前上下文中不存在名称'配置'”。

为了解决这个问题,我手动构建了配置;

ConfigurationBuilder().AddJsonFile("appsettings.json").Build().GetSection("mysetting")["variable"]

但它的本意是这样做的,不是吗?我知道这在 v3 和 v2 中发生了变化,您确实需要构建配置。

【问题讨论】:

  • 您究竟在哪里尝试使用Configuration["mysetting:variable"]?那个代码是什么样的?即你的构造函数中有Configuration 吗?另外,您是否在 Startup 类中的 ConfigureServices() 方法中构建了配置?
  • @JosieG.Bigler 抱歉我的无知,MVC/MVVM 的新手,并且一直使用剃须刀网页作为最接近我的脚本根源。在核心 3 的 MS 文档中,您不需要构建配置。我可以在启动模式中访问配置对象,但不能在其他地方访问(我假设你可以)。我已经设法通过在我正在使用的模式中复制 IConfiguration 的字段和方法(即不是 startup.cs)或通过将启动中的字段转换为内部静态字段internal static IConfiguration Configuration { get; private set; } 来访问配置对象

标签: c# .net-core razor


【解决方案1】:

尝试将此@inject 语句添加到您的剃须刀页面顶部:

@inject Microsoft.Extensions.Configuration.IConfiguration Configuration

之后,您应该能够使用此注入字段访问配置设置:

var mySettingVariable = Configuration["mysetting:variable"];

【讨论】:

    猜你喜欢
    • 2021-08-01
    • 2019-04-25
    • 1970-01-01
    • 2020-12-21
    • 2021-02-13
    • 2021-12-05
    • 2021-06-26
    • 2019-12-20
    • 2018-09-05
    相关资源
    最近更新 更多