我建立一個MVC 4.0 WEB API的應用程序,並希望使用以下路線:如何從動作匹配過程中取出路由參數?
/api/{appId}/{controller}/{id1}/{action}/{id2}
我想用appId
參數,並使用它來設置HttpContext.Current.Items
集合中的值,並希望它脫離動作匹配過程。我當然不想爲我的控制器中的每個操作方法添加appId
參數。
有沒有人有一個想法如何實現?
我建立一個MVC 4.0 WEB API的應用程序,並希望使用以下路線:如何從動作匹配過程中取出路由參數?
/api/{appId}/{controller}/{id1}/{action}/{id2}
我想用appId
參數,並使用它來設置HttpContext.Current.Items
集合中的值,並希望它脫離動作匹配過程。我當然不想爲我的控制器中的每個操作方法添加appId
參數。
有沒有人有一個想法如何實現?
您不需要包含appId作爲參數; web API將路由到匹配路由參數的最佳子集的操作。因此,如果沒有任何操作具有appId參數,則它只會匹配id1,id2和操作名稱(來自{action})。
如果要獲取控制器操作中appId的值,可以從ControllerContext.RouteData.Values字典中獲取路由值。 (不知道這是你的情況你特別需要將其存儲在HttpContext.Current.Items?)
本文介紹的一些細節動作選擇:http://www.asp.net/web-api/overview/web-api-routing-and-actions/routing-and-action-selection
謝謝你,邁克! –