Asp.net 定义不带/api/{controller}前缀的WebAPI路由

Asp.net 定义不带/api/{controller}前缀的WebAPI路由,asp.net,asp.net-mvc,asp.net-web-api,asp.net-web-api2,Asp.net,Asp.net Mvc,Asp.net Web Api,Asp.net Web Api2,我希望通过WebAPI控制器方法以不带/api/{Controller}前缀的格式处理请求,例如www.myapp.com/download/image1.jpg。是否有可能或者我需要切换到MVC控制器?我定义了以下路线: config.Routes.MapHttpRoute( name: "Check", routeTemplate: "download", defaults: new { cont

我希望通过WebAPI控制器方法以不带/api/{Controller}前缀的格式处理请求,例如www.myapp.com/download/image1.jpg。是否有可能或者我需要切换到MVC控制器?我定义了以下路线:

config.Routes.MapHttpRoute(
                name: "Check",
                routeTemplate: "download",
                defaults: new { controller = "Download", action = "CheckAccess" });

但不幸的是,它不工作,控制器甚至没有被创建我在构造函数中有跟踪

config.Routes.MapHttpRoute(
            name: "Check", 
            routeTemplate: "api/{controller}/{action}");
            defaults: new { controller = "Download", action = "CheckAccess" });

请尝试仅在web api 2中可用的属性路由,但仍有效!如果你把你的评论改成回答,我可以证实。另一个解决方案是添加委托处理程序,这可以用于任何类型的路由。属性路由在WebApi v1到NuGet上可用