我应该将 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了解更多详情。
我已经完成了一个 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了解更多详情。