首页 > 解决方案 > Asp.net Core Api 自定义路由

问题描述

我想像这样访问我的 .net 核心控制器操作

api/myController/myAction

尝试了以下方法,但没有奏效:

app.UseMvc(routes => { routes.MapRoute("default", "{controller}/{action}/{id?}"); });

有什么建议么?

标签: asp.net-core.net-core

解决方案


在花费了一些试错之后。我发现我们必须装饰那个 Action 方法是这样的:

[HttpGet]
[Route("[action]")]
public async Task<ActionResult<object>> myAction()`

它奏效了。

我发现问题是如果您不路由到上述操作方法,它将采用默认操作名称作为索引并尝试路由它。

此 Route 参数强制它查找操作名称,即本示例的 myAction。你的控制器也应该有[Route("api/[controller]")]装饰。


推荐阅读