2015-06-20 116 views
4

我已經完成了一個ASP.NET的應用MVC5(網站)在那裏我有很多MVC控制器: enter image description here我應該在ASP.NET-MVC 5項目中存儲WebAPI控制器?

我想我的程度應用通過暴露WEB API與OData的功能。

例如我想爲Person模型類創建另一個控制器,但是這次它應該是Web API而不是MVC控制器。我應該將WEB API存儲在Controller文件夾中,並將其稱爲PersonWebAPIController?它會起作用嗎?

+1

如果你想要物理分離代碼,那麼你可以在Controllers文件夾下創建一個文件夾,並將所有的ApiControllers放在那裏。如果你想按邏輯分開它們,那麼使用不同的'namespace'。但要回答你的問題'它會工作嗎?'是的。從技術上講,您可以在項目下的任何文件夾中都有控制器。 – ramiramilu

+0

@ramiramilu我對MVC很熟悉,但API對我來說是新的。是否會有與API控制器相關的任何視圖?如果是的話,那麼在'Views'文件夾中有一些子文件夾? – Yoda

+1

除非您想生成文檔,否則沒有視圖將與Web API關聯。 – ramiramilu

回答

5

要回答你的問題Will it work?

但是,如果你想物理分離的代碼,那麼你可以Controllers文件夾下創建一個自定義文件夾,並把所有的ApiControllers在新創建的文件夾中。如果你想邏輯分離MVC和API控制器,那麼對它們使用不同的namespaces

從技術上講,您可以在Visual Studio項目下的任何自定義文件夾中擁有控制器。

2

您可以刪除默認路由並使用基於屬性的路由來實現此目的。將所有的ApiController添加到具有正確路由的[Route]屬性的「API」文件夾中。請致電link瞭解更多詳情。

相關問題