如何在没有控制器的 Razor 页面中找到 wwwroot 的物理路径



我需要在列表中创建一个文件列表,这曾经很容易......但在Core 2 Razor页面上 Asp.Net 却不行。我找不到一种方法来获取"wwwroot"内部的"诗"的物理路径。我找到了很多使用 IHostingEnvironment 但总是在控制器中的示例。但是我没有控制器,不需要控制器,只需要后面的页面和代码。

哦,我多么想念网络表单!

没有控制器的 Razor 页面的解决方案是什么?

提前谢谢。

您可以使用 IWebHostEnvironment 类。 代码块给出如下:

private readonly IWebHostEnvironment _webHostEnvironment;
        public HomeController(
            IWebHostEnvironment webHostEnvironment)
        {
            _webHostEnvironment = webHostEnvironment;
        }
public IActionResult Index()
        {
            string rootPath = _webHostEnvironment.WebRootPath
            return View();
        }     

您可以在 Razor Page 中制作它,就像在控制器中一样。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
namespace Viber.Pages
{
    public class TestModel : PageModel
    {
        private Microsoft.AspNetCore.Hosting.IHostingEnvironment _env;
        public TestModel(Microsoft.AspNetCore.Hosting.IHostingEnvironment env)
        {
            _env = env;
        }
        public void OnGet()
        {
            // use the _env here
        }
    }
}

您可以使用页面模型的承包商来注入 IHostingEnvironment。

相关内容

  • 没有找到相关文章

最新更新