我应该在哪里将WebAPI控制器存储在ASP.NET-MVC 5项目中?

时间:2015-06-20 10:35:55

标签: asp.net-mvc asp.net-web-api odata

我已经完成了一个ASP.NET-MVC5应用程序(网站),我有很多MVC控制器: enter image description here

我想通过使用OData公开WEB API来扩展我的应用程序的功能。

例如,我想为Person模型类创建另一个控制器,但这次它应该是Web API而不是MVC控制器。我应该将WEB API存储在Controller文件夹中,只需将其命名为PersonWebAPIController吗?它会起作用吗?

2 个答案:

答案 0 :(得分:7)

回答你的问题Will it work?

但是如果你想在物理上分开代码,那么你可以在Controllers文件夹下创建一个自定义文件夹,并将所有ApiControllers放在新创建的文件夹中。如果要以逻辑方式分离MVC和API控制器,请为它们使用不同的namespaces

从技术上讲,您可以在Visual Studio项目下的任何自定义文件夹中拥有控制器。

答案 1 :(得分:3)

您可以删除默认路由并使用基于属性的路由来实现此目的。将所有ApiControllers添加到" API"具有正确路由的[Route]属性的文件夹。

有关详细信息,请查看此link