Asp.net
我可以同時擁有一個控制器和一個 ApiController 嗎?
我剛剛開始使用 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 視圖並為其服務。