The following can be used to pull data from the appsettings.json file and inject the data into a Razor Page.
appsettings.json With EnvironmentVariables Section
{
"EnvironmentVariables":
{
"MySQL_Server": "127.0.0.1",
"MySQL_Database": "my_db",
"MySQL_Username": "root",
"MySQL_Password": "password"
}
}
Create EnvironmentVariables Class
public class EnvironmentVariables
{
public string MySQL_Server { get; set; }
public string MySQL_Database { get; set; }
public string MySQL_Username { get; set; }
public string MySQL_Password { get; set; }
}
Populate EnvironmentVariables in Startup.cs and Inject
var env_variables = new Models.EnvironmentVariables();
var config_section = Configuration.GetSection("EnvironmentVariables");
env_variables.MySQL_Server = config_section["MySQL_Server"];
env_variables.MySQL_Database = config_section["MySQL_Database"];
env_variables.MySQL_Username = config_section["MySQL_Username"];
env_variables.MySQL_Password = config_section["MySQL_Password"];
//inject variables
services.AddSingleton(env_variables);
PageModel Injected
public class IndexModel : PageModel
{
Models.EnvironmentVariables _Env_Variables = null;
public IndexModel(Models.EnvironmentVariables env_variables)
{
this._Env_Variables = env_variables;
}
public void OnGet()
{
}
}