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

本文探讨了在WebAPI控制器中获取项目根目录的解决方案,对比了MVC项目中的方法,并提供了非网页项目中获取根目录的实现方式。

在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("~/");


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

评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值