【发布时间】:2015-02-08 13:12:44
【问题描述】:
与此处找到的问题类似:ASP.NET MVC - Find Absolute Path to the App_Data folder from Controller。
App_Data 文件夹消失了吗? Server.MapPath 好像也不见了。
我尝试使用Url.Content 获得相同的结果,但它似乎不起作用。
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-core
与此处找到的问题类似:ASP.NET MVC - Find Absolute Path to the App_Data folder from Controller。
App_Data 文件夹消失了吗? Server.MapPath 好像也不见了。
我尝试使用Url.Content 获得相同的结果,但它似乎不起作用。
【问题讨论】:
标签: c# asp.net asp.net-mvc asp.net-core
我们确实在 vNext 中有 App_Data。
这应该仍然有效
string path = AppDomain.CurrentDomain.GetData("DataDirectory").ToString();
至于 Server.MapPath 等效项,您可以使用 AppDomain.CurrentDomain.BaseDirectory 并从那里构建您的路径。
您也可以使用IApplicationEnvironment 服务
private readonly IApplicationEnvironment _appEnvironment;
public HomeController(IApplicationEnvironment appEnvironment)
{
_appEnvironment = appEnvironment;
}
public IActionResult Index()
{
var rootPath = _appEnvironment.ApplicationBasePath;
return View();
}
IHostingEnvironment 在道德上等同于 Web 应用程序 的 IApplicationEnvironment。对于 PhysicalFileSystem,IHostingEnvironment 回退到 IApplicationEnvironment。
private readonly IHostingEnvironment _hostingEnvironment;
public HomeController(IHostingEnvironment hostingEnvironment)
{
_hostingEnvironment = hostingEnvironment;
}
public IActionResult Index()
{
var rootPath = _hostingEnvironment.MapPath("APP_DATA");
return View();
}
【讨论】:
MapPath 存在于 IHostingEnvironment 中
private readonly IHostingEnvironment _env;
public HomeController(IHostingEnvironment env)
{
_env = env;
}
public IActionResult Index()
{
var dataFolderPath = _env.MapPath("APP_DATA");
return View();
}
【讨论】: