Asp.net

我可以同時擁有一個控制器和一個 ApiController 嗎?

  • December 13, 2017

我剛剛開始使用 VS 2012 RC,我正在創建一個 ASP.NET MVC 4 Web 應用程序,我計劃在其中提供一個基於 HTML 的使用者界面和一個基於 WebApi 的程式界面。

對於我的 HTML 網站,我的每個模型(MVC!)都有一個控制器和視圖,並且路由“按約定”工作,例如,URL/client連接到我的ClientController. 我ClientController的派生自Controller.

對於我的 API,我將創建從ApiController. 我自然希望我的 API URL 類似於我的 HTML URL,所以我希望客戶端資訊可以在/api/client. 但是,使用約定俗成的路由,這表明我需要一個名為ClientController. 而且我已經ClientController上課了。

我該如何處理?我需要自定義路由嗎?我是否將 API 類放在不同的命名空間中以便給它們起相同的名稱?

**更新:**這個問題似乎表明我的 API 控制器需要一個不同的命名空間:Mix web api controllers and site controllers

它所需要的只是控制器類位於不同的命名空間中,一切都很好。

使用 MVC 區域也可以(正如 gordonml 的評論中所建議的那樣),但這有效地將控制器置於不同的命名空間中,因此這是實現相同結果的更正式的方式。

您可以查看以下部落格文章,該文章說明了 Api 控制器如何也可以為 Razor 視圖提供服務。基本上他使用RazorEngine來解析 Razor 視圖並為其服務。

引用自:https://stackoverflow.com/questions/11564922