我应该将 WebAPI 控制器存储在 ASP.NET-MVC 5 项目中的什么位置?

Where should I store WebAPI controllers inside ASP.NET-MVC 5 project?

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

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

例如,我想为 Person 模型 class 创建另一个控制器,但这次应该是 Web API 而不是 MVC 控制器。我应该 WEB API 将它存储在 Controller 文件夹中并只调用它 PersonWebAPIController 吗?会成功吗?

回答你的问题Will it work?

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

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

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

请查看此link了解更多详情。