由于 Microsoft Web API 不是 MVC ,因此您不能执行以下操作:
var a = Request.MapPath("~");
也不是这个
var b = Server.MapPath("~");
因为这些在System.Web命名空间下,而不是System.Web.Http命名空间下。
System.Web
System.Web.Http
那么如何计算 Web API 中的相对服务器路径呢? 我曾经在MVC 中做这样的事情: __
var myFile = Request.MapPath("~/Content/pics/" + filename);
这会给我磁盘上的绝对路径:
"C:\inetpub\wwwroot\myWebFolder\Content\pics\mypic.jpg"
您可以在对象不可用的任何上下文中使用HostingEnvironment.MapPath(例如,也来自静态方法)。System.Web``HttpContext.Current
System.Web``HttpContext.Current
var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/SomePath");
另请参阅Server.MapPath 和 HostingEnvironment.MapPath 有什么区别?