2014-12-03 54 views
5

我想爲Web API啓用屬性路由,因爲它看起來會使路由更容易定義。這裏的例子:http://www.asp.net/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2顯示它是如何在WebApiConfig.cs文件中完成:在global.asax中啓用web api屬性路由

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(...) 

任何人都可以解釋,以使在這種情況下,基於屬性的路由的最好方法? 謝謝

+0

閱讀您在「注意:從Web API 1遷移」下發布的鏈接 – Rhumborl 2014-12-03 15:01:32

+0

@rhumborl感謝您的建議。有趣的是,我沒有提到'WebApiConfig.Register(GlobalConfiguration.Configuration);'在global.asax – Kate 2014-12-03 15:11:33

+0

哇,downvotes?這是一個壞問題嗎?有人能告訴我爲什麼嗎? – Kate 2014-12-03 15:13:04

回答

10

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

GlobalConfiguration.Configuration對象傳遞給WebApiConfig文件,所以你可以使用這個類來配置你需要在Global.asax

+0

太好了,謝謝你! – Kate 2014-12-03 15:12:16

3

你應該把這些兩行路線定義之前,它會工作愉快

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

乾杯