Rob*_*ert 3 asp.net-core razor-pages
因此,最终目标是我希望在仪表板中根据 appsettings.json 中的连接字符串突出显示连接到的数据库服务器。我可以这样做,但仅适用于主 appsettings.json,而我想知道在考虑 appsettings.Development.json 和 appsettings.Production.json 时正在发挥什么作用。
为了做到这一点,我需要一种访问 HostingEnvironment 的方法,但我似乎找不到在布局中公开它的方法。
var env = Context.HostingEnvironment; // this is the part I need to fix, everything else works.
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.Build();
var sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder = new SqlConnectionStringBuilder(configuration.GetConnectionString("DB1Connection"));
ViewData["DB1"] = sqlBuilder.DataSource;
sqlBuilder = new SqlConnectionStringBuilder(configuration.GetConnectionString("DB2Connection"));
ViewData["DB2"] = sqlBuilder.DataSource;
sqlBuilder = new SqlConnectionStringBuilder(configuration.GetConnectionString("DB3Connection"));
ViewData["DB3"] = sqlBuilder.DataSource;
Run Code Online (Sandbox Code Playgroud)
使用@inject
指令注入它的实例:
@inject IWebHostEnvironment environment
<!DOCTYPE html>
<html>
<head>...
Run Code Online (Sandbox Code Playgroud)
然后您可以稍后使用它:
@if(environment.IsDevelopment())
{
...
}
Run Code Online (Sandbox Code Playgroud)
您需要将几个using
指令添加到顶级_ViewImports文件中:
@using Microsoft.AspNetCore.Hosting
@using Microsoft.Extensions.Hosting
Run Code Online (Sandbox Code Playgroud)
有关注入视图和布局的更多信息,请参阅此处:https://www.learnrazorpages.com/advanced/dependency-injection#injecting-into-content-pages-or-views
归档时间: |
|
查看次数: |
1201 次 |
最近记录: |