路由模板不能以“/”或>“~”字符开头,也不能包含“?” 特点

Dav*_*New 7 asp.net-web-api routeattribute asp.net-web-api2

我收到以下路由属性的异常:

[Route("{id}?action=decline")]
Run Code Online (Sandbox Code Playgroud)

例外:

System.Web.Http.dll 中出现“System.ArgumentException”类型的异常,但未在用户代码中处理

附加信息:路由模板不能以“/”或“~”字符开头,也不能包含“?” 特点。

为什么这是不允许的?

小智 4

我认为这是不允许的,因为查询字符串不是 URI 路径的一部分。(参见RFC3986第3.3节路径,它不包括查询部分)
但我没有确凿的事实来证明:/。也许这些链接可以帮助您:

基于查询字符串参数名称
QueryString 与 MVC 的路由 5 Web API 2 中的
属性路由 ASP.NET Web API 2 中的属性路由