【发布时间】:2019-06-19 22:13:46
【问题描述】:
我们有这个StartUp 如下从appsettings.json 获取值:
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
var environment = Configuration["ApplicationSettings:Environment"];
}
public void ConfigureServices(IServiceCollection services)
{
services.Configure<AppSettings>(Configuration.GetSection("ApplicationSettings"));
...
}
而且我们的模型也叫AppSettings
public class AppSettings
{
public string Environment { get; set; }
public string Version { get; set; }
}
由于我正在处理 /Pages/Shared/_Layout.cshtml 尝试将此 版本 注入此共享页面,因此我无法执行代码背后的方法。那怎么注入呢?
更新 1 -
如果是页面模型,理论上我可以这样做:
public class _LayoutModel : PageModel
{
private readonly AppSettings _appSettings;
public string Version;
public string Environment;
public _LayoutModel(IOptions<AppSettings> appsettings)
{
_appSettings = appsettings.Value;
}
public void OnGet()
{
Environment = _appSettings.Environment;
Version = _appSettings.Version;
}
}
【问题讨论】:
标签: asp.net-core .net-core razor-pages