7

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

[Route("{id}?action=decline")]

例外:

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

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

为什么不允许这样做?

4

2 回答 2

2

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

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

于 2014-11-23T18:03:11.677 回答
2

您可以这样做,您将可以同时访问idaction

[Route("{id}")]

public IHttpActionResult YourMethod([FromUri] string action)
于 2019-03-20T15:22:45.153 回答