2015-10-02 32 views
0

我正在使用ASP .NET MVC和Web API 2並行在我正在開發的項目中。從Web API 2控制器內的ASP.NET .NET MVC Url.Action

我希望能夠提供鏈接到由內我的API響應某些MVC的行動,因爲這些行動往往涉及到所提供的資源。

的問題是,我沒有MVC的HttpContext從網頁API中,所以我不能用Url.Action方法來生成鏈接。我唯一的選擇是手動/硬編碼鏈接,但我不想採用這種方法,因爲它不能縮放。

任何方式產生一個MVC的HttpContext/RequestContext的?

回答

2

你不應該考慮混合MVC /的WebAPI,因爲的WebAPI的設計是無狀態的,這就是爲什麼它的上下文比MVC不同。

如果您需要使用的WebAPI MVC環節(只是好奇 - 爲什麼),您應該使用助手像T4MVC或準備自己的,它封裝了要使用的URL。您不應該考慮在WebAPI中使用MVC上下文,因爲您永遠無法知道它的當前狀態。

如果API已經知道一些關於你的MVC結構,有什麼不對您的設計海事組織。

+0

有趣。就我而言,我正在使用客戶端框架構建網站的較新部分,其中所有交互都是通過API完成的。該網站已超過10年曆史,並且在MVC以及較早的學校ASP技術方面具有基礎。新部分需要鏈接到舊網站的部分,因此這種必要性。編輯:我很想知道爲什麼這會表明我的設計有問題? – Titus

+0

@Titus這就是爲什麼你應該有一些幫助器,它將映射URL。將環境引入WebAPI對我來說似乎是錯誤的。 – Kamo

+0

我同意,並且不會使用這種方法。我已經在我們的堆棧中引入了大量新技術,所以這可能會在後期出售。現在我想我可能會用硬編碼的鏈接去。 – Titus