我有一堆控制器在我的应用程序中由默认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”路线永远不会被击中! –