ASP.NET 核心 3.1:Razor Pages:RazorPage.cshtml.cs 中的依赖注入
ASP.NET Core 3.1: Razor Pages: Dependency Injection in RazorPage.cshtml.cs
我有一个 Asp.Net Core RazorPages 应用程序,我正在尝试注入 WebHosting 环境以便我可以访问文件。我在解决方案文件夹下有一个名为“Reports”的文件夹。我以这种方式在我的 RazorPage 代码中注入 IWebHostEnvironment:
public class IndexModel : PageModel {
private readonly Microsoft.AspNetCore.Hosting.IWebHostEnvironment webHostEnvironment1;
public IndexModel(Microsoft.AspNetCore.Hosting.IWebHostEnvironment webHostEnvironment)
{
this.webHostEnvironment1 = webHostEnvironment;
}
public void OnGet() {
string reportPath = System.IO.Path.Combine(webHostEnvironment1.ContentRootPath, "Reports", "TestReport.repx");
Console.WriteLine("CONTENTRootPath: " + webHostEnvironment1.ContentRootPath);
Console.WriteLine("WEBRootPath: " + webHostEnvironment1.WebRootPath);
Console.WriteLine("ReportPath: " + reportPath);
}
我的Startup.cs:
public Startup(IConfiguration configuration, IWebHostEnvironment environment)
{
Configuration = configuration;
WebHostEnvironment = environment;
}
public IConfiguration Configuration { get; }
public IWebHostEnvironment WebHostEnvironment { get; }
当我 运行 我的应用程序时,它没有抛出任何错误,但它没有写入控制台、contentrootpath 和 reportfilepath。我的代码正确吗?
我不更改 startup.cs 中的任何内容。只需粘贴您提供的代码即可。
并且我在Output
里面可以看到控制台的详细信息,你可以试试
步骤 1. 单击输出。
步骤 2. 单击下拉列表。
第 3 步。选择 Web 服务器。
我有一个 Asp.Net Core RazorPages 应用程序,我正在尝试注入 WebHosting 环境以便我可以访问文件。我在解决方案文件夹下有一个名为“Reports”的文件夹。我以这种方式在我的 RazorPage 代码中注入 IWebHostEnvironment:
public class IndexModel : PageModel {
private readonly Microsoft.AspNetCore.Hosting.IWebHostEnvironment webHostEnvironment1;
public IndexModel(Microsoft.AspNetCore.Hosting.IWebHostEnvironment webHostEnvironment)
{
this.webHostEnvironment1 = webHostEnvironment;
}
public void OnGet() {
string reportPath = System.IO.Path.Combine(webHostEnvironment1.ContentRootPath, "Reports", "TestReport.repx");
Console.WriteLine("CONTENTRootPath: " + webHostEnvironment1.ContentRootPath);
Console.WriteLine("WEBRootPath: " + webHostEnvironment1.WebRootPath);
Console.WriteLine("ReportPath: " + reportPath);
}
我的Startup.cs:
public Startup(IConfiguration configuration, IWebHostEnvironment environment)
{
Configuration = configuration;
WebHostEnvironment = environment;
}
public IConfiguration Configuration { get; }
public IWebHostEnvironment WebHostEnvironment { get; }
当我 运行 我的应用程序时,它没有抛出任何错误,但它没有写入控制台、contentrootpath 和 reportfilepath。我的代码正确吗?
我不更改 startup.cs 中的任何内容。只需粘贴您提供的代码即可。
并且我在Output
里面可以看到控制台的详细信息,你可以试试
步骤 1. 单击输出。
步骤 2. 单击下拉列表。
第 3 步。选择 Web 服务器。