我在我的ASP.NET Web API配置下列路线2项目:从路由配置到属性路由
config.Routes.MapHttpRoute(
name: "1MandatoryStringParameter",
routeTemplate: "api/{controller}/{data}",
defaults: null,
constraints: new { data = @".+?" }
它用于下列的控制器方法(注意ArrayInput属性):
[ArrayInput("data",Separator = ',')]
public async Task<IHttpActionResult> Get(int[] data)
{
...
}
我想用Attribute路由代替。
我试图调用具有以下属性替换到MapHttpRoute:
[HttpGet]
[Route("api/ActionsForItemTypesList/{data:regex(.+?)}", Name = "1MandatoryStringParameter")]
出它不工作的开箱。我无法通过以下URL访问我的方法:
api/ActionsForItemTypesList/1,2
如果找不到404方法,
这与路由配置工作正常。
任何帮助表示赞赏。
编辑:修正了客户端的URL。
编辑2:这是一个问题ApiExplorer(Swashbuckle杠杆ApiExplorer)
如果我修改路由属性并取出ApiDescription变为可用的参数(即{}数据)。
两件事。您可以为int数组创建自定义路由约束和自定义模型绑定器。 [ASP.NET Web API 2中的属性路由](https://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2) – Nkosi