我希望能够从控制器中的代码浏览Web根目录中的目录(例如,我的\ img目录或\ pdf目录)。
我想使用类似以下的内容,其中env
是IWebHostEnvironment
的实例:
var provider = env.WebRootFileProvider;
var path = env.WebRootPath;
我不确定如何从控制器中获取IWebHostEnvironment
的实例。该怎么办?
答案 0 :(得分:1)
您可以使用依赖项注入将IWebHostEnvironment
实例注入您的控制器。要么在构造函数中:
public class MyController : Controller
{
private readonly IWebHostEnvironment _env;
public MyController(IWebHostEnvironment env)
{
_env = env;
}
}
或采用任何一种或控制器的方法:
public class MyController : Controller
{
[HttpGet]
public IActionResult Me([FromServices] IWebHostEnvironment env)
{
return View();
}
}
请注意,默认WebRootFileProvider
指向wwwroot
文件夹,因此您需要确保它存在,否则您将得到一个NullFileProvider
。