0
我有以下途徑:Asp.NET網頁API 2路由參數
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{service_name}/{controller}/{id}",
defaults: new { service_name = "identity", id = RouteParameter.Optional }
);
我想這條路線只與下面的模式工作(服務名稱應該永遠是身份):
api/identity/{anyController}/{id}
現在我可以通過簡單地將我的路由模板更改爲
routeTemplate: "api/identity/{controller}/{id}",
但後來我無法讀取「服務_name「從Request.GetRouteData();
,因爲它不是命名參數。
有沒有更簡單的方法來做到這一點,而不是創建一個ActionFilter,它將過濾所有在這種情況下服務名稱不是「Identity」的請求。
無法理解,如果您更改爲「api/identity/{controller}/{id}」,則不存在service_name)) –
@ElvinMammadov如果您嘗試檢查service_name時將模板硬編碼爲'api/identity'在RouteData字典中,沒有包含'service_name'鍵的條目。 – Robert
但是使用路由配置,您可以使用屬性路由。這是配置路由的好方法。 –