【问题标题】:Defining a WebAPI route without the /api/{controller} prefix定义不带 /api/{controller} 前缀的 WebAPI 路由
【发布时间】:2016-10-25 16:02:38
【问题描述】:

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

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

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

【问题讨论】:

  • 尝试属性路由(仅在 web api 2 中可用)
  • 成功了!如果您将评论更改为答案,我可以确认。另一种解决方案是添加一个委托处理程序,这可以用于任何类型的路由。

标签: asp.net asp.net-mvc asp.net-web-api asp.net-web-api2


【解决方案1】:

试试这个,

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

【讨论】:

    【解决方案2】:

    尝试属性路由(仅在 web api 2 中可用)

    【讨论】:

    • 属性路由可通过 NuGet 在 WebApi v1 上使用
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-04
    • 1970-01-01
    • 2014-03-14
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    相关资源
    最近更新 更多