本文作者:小黑黑

Asp.Net Core中获取应用程序的物理路径

小黑黑 6个月前 ( 10-11 ) 483 抢沙发
Asp.Net Core中获取应用程序的物理路径摘要:        在传统的Asp.Net应用程序中,我们要获取相对路径或虚拟路径对应的服务器物理路径,我们只需要使用Serv...

       在传统的Asp.Net应用程序中,我们要获取相对路径或虚拟路径对应的服务器物理路径,我们只需要使用Server.MapPath()方法就可以来取得Asp.Net根目录的物理路径:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        string path = Server.MapPath("~/");
        return Content(path);
    }
}

       但在Asp.Net Core中不存在Server.MapPath()方法,Controller基类中没有Server属性。如果要在Asp.Net Core中取得物理路径,我们需要通过注入IHostingEnvironment服务对象来取得Web根目录和内容目录的物理路径:

public class HomeController : ExcelController
{
    private readonly IHostingEnvironment _hostingEnvironment;

    public HomeController(IHostingEnvironment hostingEnvironment)
    {
        _hostingEnvironment = hostingEnvironment;
    }

    public IActionResult Index()
    {
        string webRootePath = _hostingEnvironment.WebRootPath;
        string contentRootPath = _hostingEnvironment.ContentRootPath;

        return Content(webRootePath + "\n" + contentRootPath);
    }

}

       其中webRootPath:一般用于存放我们的静态资源文件,默认为wwwroot,当然我们可以对其进行修改,而contentRootPath则是我们的程序运行的根目录。

分享到: 网站分享代码

发表评论

快捷回复:

评论列表 (暂无评论,483人围观)参与讨论

还没有评论,来说两句吧...