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 服务器。