【问题标题】:Where should I store WebAPI controllers inside ASP.NET-MVC 5 project?我应该在哪里存储 ASP.NET-MVC 5 项目中的 WebAPI 控制器?
【发布时间】:2015-09-06 07:32:24
【问题描述】:

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

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

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

【问题讨论】:

  • 如果你想物理分离代码,那么你可以在Controllers文件夹下创建一个文件夹,将所有ApiControllers放在那里。如果您想在逻辑上将它们分开,请使用不同的namespace。但是要回答您的问题Will it work? 是的。从技术上讲,您可以在项目下的任何文件夹中拥有控制器。
  • @ramiramilu 我对 MVC 有点熟悉,但 API 对我来说是新的。是否会有与 API 控制器相关的视图?如果是,Views 文件夹中有子文件夹吗?
  • 没有视图将与 Web API 关联,除非您想生成文档。
  • @ramiramilu 你能看一下吗? stackoverflow.com/questions/30953865/…
  • 那么这个问题你解决了吗?

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


【解决方案1】:

回答你的问题Will it work?是的

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

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

【讨论】:

    【解决方案2】:

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

    请查看link 了解更多详情。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-02
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 2015-01-13
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      相关资源
      最近更新 更多