1

MVC 4.0 WEB API アプリを構築しており、次のルートを使用したいと考えています。

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

パラメータを使用appIdし、それを使用してコレクションに値を設定しHttpContext.Current.Items、アクション マッチング プロセスから除外したいと考えています。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 に答える