當(dāng)前位置:首頁 > IT技術(shù) > Windows編程 > 正文

ASP.NET WebAPI項(xiàng)目中apiController控制器中怎樣獲得當(dāng)前項(xiàng)目根目錄
2022-09-06 22:45:26


在MVC項(xiàng)目中的時(shí)候,獲取當(dāng)前項(xiàng)目的根目錄非常容易,我們經(jīng)常會(huì)使用

Server.MapPath("~/");


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

后來研究發(fā)現(xiàn)應(yīng)該是因?yàn)?/p>

public class OrderController : ApiController


----

專門建了一個(gè)MVC項(xiàng)目去追蹤Server.MapPath()的命名空間,后來找到一種方法。

其實(shí)這個(gè)方法就是Controller實(shí)例下的一個(gè)屬性(但不是apiController),因此我們實(shí)例化一個(gè)Controller就行了。

如下即可:

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


==========

拓展:

如果在一個(gè)非網(wǎng)頁項(xiàng)目中,比如一個(gè)winform項(xiàng)目中,想要同樣獲取項(xiàng)目根目錄怎么辦,我推測(cè)是項(xiàng)目中引用System.Web.Mvc即可,因?yàn)榭梢詫?shí)例化一個(gè)Controller了。剩下的你懂的。


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

看了上面的內(nèi)容,如果你去試了,你回頭可能要罵我了,因?yàn)槲野l(fā)現(xiàn)我上面說的是錯(cuò)的。

但不論如何,我終究還是找到了。

如下:


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



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

開通會(huì)員,享受整站包年服務(wù)立即開通 >