2014-10-27 101 views
0

我無法使屬性路由在Web API 2中工作。我沒有從Web API模板項目開始,我認爲它是Empty項目。基於約定的路由工作,但當我添加路由屬性控制器操作,我得到404錯誤。我發現很多關於這個的帖子,但是沒有人幫助我。它可能與項目模板有關,因爲我從Empty項目開始,所以必須手動完成。我在WebApiConfig中調用MapHttpAttributeRoutes方法,並且類Iheriting ApiController是公共的。我還需要在WebApiConfig類和Application_Start方法中做些什麼? 在此先感謝。Web API屬性路由HTTP 404

這裏是我的WebApiConfig文件:

public static void Register(HttpConfiguration config) 
    { 
     // Web API routes 
     config.MapHttpAttributeRoutes(); 

     config.Routes.MapHttpRoute(
      name: "DefaultApi", 
      routeTemplate: "api/{controller}/{action}/{oId}/{oTypeCode}/{oTypeName}/{email}", 
      defaults: new { controller = "Xrm", email = RouteParameter.Optional, oId = RouteParameter.Optional, oTypeCode = RouteParameter.Optional, oTypeName = RouteParameter.Optional} 
     ); 
    } 

而且Application_Start方法中:

protected void Application_Start() 
    { 
     System.Web.Mvc.AreaRegistration.RegisterAllAreas(); 
     GlobalConfiguration.Configure(WebApiConfig.Register); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     log4net.Config.XmlConfigurator.Configure(); 
    } 
+1

分享您的部分代碼。看着這可能會有所幫助。 – Guanxi 2014-10-27 11:31:12

回答

0

當然,我的錯。我試圖通過一個電子郵件地址作爲路徑參數。將其作爲查詢字符串參數發送。我不確定它會如何發送作爲路徑的一部分,但它適用於我這種方式。