ASP.NET WebAPI项目中apiController控制器中怎样获得当前项目根目录
2022-09-06 22:45:26


在MVC项目中的时候,获取当前项目的根目录非常容易,我们经常会使用

Server.MapPath("~/");


但是在WebAPI的控制器中为什么就没有了呢?

后来研究发现应该是因为

public class OrderController : ApiController


----

专门建了一个MVC项目去追踪Server.MapPath()的命名空间,后来找到一种方法。

其实这个方法就是Controller实例下的一个属性(但不是apiController),因此我们实例化一个Controller就行了。

如下即可:

System.Web.Mvc.Controller controller = new HomeController();
var curProjRootPath = controller.Server.MapPath("~/");


==========

拓展:

如果在一个非网页项目中,比如一个winform项目中,想要同样获取项目根目录怎么办,我推测是项目中引用System.Web.Mvc即可,因为可以实例化一个Controller了。剩下的你懂的。


=========================

看了上面的内容,如果你去试了,你回头可能要骂我了,因为我发现我上面说的是错的。

但不论如何,我终究还是找到了。

如下:


var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/");



本文摘自 :https://blog.51cto.com/u


更多科技新闻 ......