Ответ 1
В Asp.NET Core среда хостинга была абстрагирована с использованием интерфейса IHostingEnvironment
Свойство ContentRootPath предоставит вам доступ к абсолютному пути к файлам содержимого приложения.
Вы также можете использовать свойство WebRootPath, если хотите получить доступ к корневому пути, обслуживаемому через Интернет (по умолчанию папка www)
Вы можете внедрить эту зависимость в свой контроллер и получить к ней доступ следующим образом:
public class HomeController : Controller
{
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public ActionResult Index()
{
string webRootPath = _hostingEnvironment.WebRootPath;
string contentRootPath = _hostingEnvironment.ContentRootPath;
return Content(webRootPath + "\n" + contentRootPath);
}
}
ОБНОВИТЬ
IHostingEnvironment помечен как устаревший в .NET Core 3.0, на что указывает @amir133. Пожалуйста, используйте IWebHostEnvironment, как показано ниже, если целевой платформой является .NET Core 3.0:
public class HomeController : Controller
{
private readonly IWebHostEnvironment _hostingEnvironment;
public HomeController(IWebHostEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public ActionResult Index()
{
string webRootPath = _hostingEnvironment.WebRootPath;
string contentRootPath = _hostingEnvironment.ContentRootPath;
return Content(webRootPath + "\n" + contentRootPath);
}
}