拥有此Web API控制器:
[RoutePrefix("api/echo")]
public class EchoController : ApiController
{
[HttpGet]
[Route("{userId}/{message}")]
public async Task<IHttpActionResult> Echo(string userId, string message, string queryString)
{
await Task.Delay(150);
return Ok(new {Action = "Echo", UserId = userId, Message = message, QueryString = queryString});
}
}
执行此API的合法路由如下所示:/api/echo/johni/hello?querystring=1
如您所见,这个虚拟API接收3个输入:
userId
来自路线message
来自路线querystring
来自查询参数其中所有3个都可在此处以字典形式提供:httpActionContext.ActionArguments
。
问题是,鉴于HttpActionContext
,如何区分路由/查询参数?
答案 0 :(得分:0)
找到它。
httpActionContext.ActionArguments
- 所有参数(路线/查询)。httpActionContext.RequestContext.RouteData.Values
- 仅限路线参数。这意味着, X - Y - 仅查询参数。