1

我正在构建一个 MVC 4.0 WEB API 应用程序,并希望使用以下路线:

/api/{appId}/{controller}/{id1}/{action}/{id2}

我想使用该appId参数并使用它在集合中设置一个值HttpContext.Current.Items,并希望它退出 Action 匹配过程。我当然不想为appId我的控制器中的每个操作方法添加参数。

有谁知道如何实现这一目标?

4

1 回答 1

3
  1. 您不需要包含 appId 作为参数;Web API 将路由到与路由参数的最佳子集匹配的操作。因此,如果没有动作有 appId 参数,它只会匹配 id1、id2 和动作名称(来自 {action})。

  2. 如果要在控制器操作中获取 appId 的值,可以从 ControllerContext.RouteData.Values 字典中获取路由值。(不确定这是否是您的情况。您是否特别需要将其存储在 HttpContext.Current.Items 中?)

本文详细介绍了动作选择:http ://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection

于 2012-09-13T22:38:56.740 回答