ASP.NET WebAPI项目中apiController控制器中怎样获得当前项目根目录

ASP.NET WebAPI项目中apiController控制器中怎样获得当前项目根目录  
 

2015-09-17 22:28 
在MVC项目中的时候,获取当前项目的根目录非常容易,我们经常会使用




[csharp] view plain copy 
01.Server.MapPath("~/");  


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

后来研究发现应该是因为




[csharp] view plain copy 
01.public class OrderController : ApiController  


 ---- 

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

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

如下即可:




[csharp] view plain copy 
01.System.Web.Mvc.Controller controller = new HomeController();  
02.var curProjRootPath = controller.Server.MapPath("~/");  


 ========== 

拓展:

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




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

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

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

如下:





[csharp] view plain copy 
01.var mappedPath = System.Web.Hosting.HostingEnvironment.MapPath("~/");  





来自stackoverflow:http://stackoverflow.com/questions/16557122/microsoft-web-api-how-do-you-do-a-server-mappath

 

http://blog.csdn.net/festone000/article/details/48531031

posted @ 2017-06-14 13:10  sky20080101  阅读(609)  评论(1)    收藏  举报