【问题标题】:ASP.NET Core 3.1: Razor Pages: Dependency Injection in RazorPage.cshtml.csASP.NET Core 3.1:Razor 页面:RazorPage.cshtml.cs 中的依赖注入
【发布时间】:2021-10-30 07:36:37
【问题描述】:

我有一个 Asp.Net Core RazorPages 应用程序,并且正在尝试注入 WebHosting 环境,以便我可以访问文件。我在解决方案文件夹下有一个名为“报告”的文件夹。我以这种方式在我的 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。我的代码正确吗?

【问题讨论】:

标签: asp.net-core dependency-injection


【解决方案1】:

我没有更改 startup.cs 中的任何内容。只需粘贴您提供的代码,它就可以正常工作。

而且我可以在Output看到控制台详情,你可以试试。

第 1 步。点击输出。

第 2 步。点击下拉列表。

第 3 步。选择 Web 服务器。

【讨论】:

    猜你喜欢
    • 2020-05-06
    • 2018-01-16
    • 2019-02-22
    • 1970-01-01
    • 2018-10-08
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2020-11-30
    相关资源
    最近更新 更多