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

Kat*_*ate 8 c# asp.net asp.net-web-api

我想为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.
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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

RouteTable.Routes.MapHttpRoute(...)
Run Code Online (Sandbox Code Playgroud)

任何人都可以解释在这种情况下启用基于属性的路由的最佳方法吗?谢谢

Vse*_*nin 16

你可以GlobalConfiguration.Configuration.MapHttpAttributeRoutes();在你的Global.asax文件中做.

GlobalConfiguration.Configurationobject被传递给WebApiConfigfile,因此您可以使用此类来配置您需要的所有内容Global.asax


use*_*181 5

您应该将这两行放在路线定义之前,它会很愉快地工作

  GlobalConfiguration.Configuration.MapHttpAttributeRoutes();
  GlobalConfiguration.Configuration.EnsureInitialized();
Run Code Online (Sandbox Code Playgroud)

干杯