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

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


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

Server.MapPath("~/");


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

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

public class OrderController : ApiController


----

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

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

如下即可:

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


==========

拓展:

如果在一個非網(wǎng)頁項目中,比如一個winform項目中,想要同樣獲取項目根目錄怎么辦,我推測是項目中引用System.Web.Mvc即可,因為可以實例化一個Controller了。剩下的你懂的。


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

看了上面的內(nèi)容,如果你去試了,你回頭可能要罵我了,因為我發(fā)現(xiàn)我上面說的是錯的。

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

如下:


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



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

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