在global.asax中启用Web api属性路由

本文关键字:api 属性 路由 Web 启用 global asax | 更新日期: 2023-09-27 18:33:02

我想为 Web API 启用属性路由,因为它看起来会使路由更容易定义。 这里的示例:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2 显示了如何在 WebApiConfig.cs 文件中完成此操作:

using System.Web.Http;
namespace WebApplication
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            // Web API routes
            config.MapHttpAttributeRoutes();
            // Other Web API configuration not shown.
        }
    }
}

但是,我的项目是一个旧的 Web 表单项目,最初是在 .Net 2.0 中启动的(经过多年的多次升级,现在是 4.5)。 我没有 WebApiConfig.cs 文件,而是使用以下方法直接在 global.asax Application_Start 方法中定义我当前的路由:

RouteTable.Routes.MapHttpRoute(...)

谁能解释在这种情况下启用基于属性的路由的最佳方法?谢谢

在global.asax中启用Web api属性路由

您可以在Global.asax文件中执行GlobalConfiguration.Configuration.MapHttpAttributeRoutes();

GlobalConfiguration.Configuration对象传递到WebApiConfig文件,因此您可以使用此类来配置所需的所有内容Global.asax

您应该将这 2 行放在路由定义之前,它会很好地工作

  GlobalConfiguration.Configuration.MapHttpAttributeRoutes();
  GlobalConfiguration.Configuration.EnsureInitialized();

干杯