我有一堆控制器在我的應用程序中由默認web api路由處理。現在我試圖處理控制器尚不存在的情況,但我真的對它的名字感興趣。Web API路由捕獲缺失的控制器
所有現有的和未來的控制器將具有相同的航線結構
api/{controller}/{id}
有沒有辦法捕捉到不存在的控制器的名稱,而不妨礙由控制器類型名稱進行默認路由的API。
我目前的配置:
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "Default Api",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Missing Api",
routeTemplate: "api/{name}/{id}",
defaults: new
{
controller = "Missing",
name = RouteParameter.Optional,
id = RouteParameter.Optional
}
);
}
}
當安排好了這個順序MissingController永遠不會在運行時創建。如果我重新排列路線,實際的控制器將不會被創建。
對於我來說遺漏URL和現有控制器的URL是很重要的,否則這個改變將需要一些改變和(特別是)與前端開發人員的不必要的通信。
怎麼辦?
你的「Missing Api」路線永遠不會被擊中! –