【发布时间】:2019-10-16 06:13:18
【问题描述】:
作为我们项目中的约定,我们将所有 API 控制器类命名为 AuthenticationApiController,而不是 MVC 中的控制器 AuthenticationController。
但是现在当 API 被调用时,我们必须像 /api/authenticationapi/logout 这样调用它。
认为没问题,但我不喜欢 URL 中出现两次“api”字样。
有没有办法,我可以自定义定义为[Route("api/[controller]")] 的路由,以便在将 URL 添加到路由表时从控制器名称中删除 api。
**注意:寻找通用方式,而不是在每个 api 控制器上硬编码名称。
【问题讨论】:
-
当然可以。您可以将其添加到控制器功能并使用该 url 发出请求。
-
但是那不会是通用的......在这里我创建了一个 BaseApiController 并从中派生了所有控制器......所以我不必在所有控制器上都这样做
-
那么..添加控制器有两种方式:webapiController(这个使用api/~)和MVC控制器(不包括
api) -
你也可以设置WebApiConfig.cs
标签: asp.net-mvc asp.net-core routing