2012-09-13 36 views
1

我建立一個MVC 4.0 WEB API的應用程序,並希望使用以下路線:如何從動作匹配過程中取出路由參數?

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

我想用appId參數,並使用它來設置HttpContext.Current.Items集合中的值,並希望它脫離動作匹配過程。我當然不想爲我的控制器中的每個操作方法添加appId參數。

有沒有人有一個想法如何實現?

回答

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

+0

謝謝你,邁克! –

相關問題