2015-06-20 89 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了解更多详情。

相关问题