类似于此处找到的问题:ASP.NET MVC - 从控制器查找App_Data文件夹的绝对路径。
我试图使用
App_Data
文件夹消失了吗?Server.MapPath
似乎也消失了。我试图使用
Url.Content
实现相同的结果,但似乎不起作用。App_Data
文件夹消失了吗?Server.MapPath
似乎也消失了。Url.Content
实现相同的结果,但似乎不起作用。在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();
}
IHostingEnvironment中存在MapPath方法。
private readonly IHostingEnvironment _env;
public HomeController(IHostingEnvironment env)
{
_env = env;
}
public IActionResult Index()
{
var dataFolderPath = _env.MapPath("APP_DATA");
return View();
}