2017-10-13 71 views
0

我想映射路由到ApiController,以發佈數據到它。 我沒有使用Surface控制器,因爲我想要一個乾淨的網址,如/api/test/{action},而url中沒有umbraco/surface部分。Umbraco 7路由到自定義控制器的其餘API

我試圖使用

RouteTable.Routes.MapHttpRoute(
    "ApiTest", 
    "Api/Test/{action}", 
    new 
    { 
     controller = "Api_Test", 
     action = "Search" 
    }); 

但我發現了一個錯誤,因爲MapHttpRoute需要4弦[]參數。

如何映射該路線? 然後我會發佈一個jsonxml並返回響應(json或xml)。

+0

爲什麼你不使用已應用自動路由的UmbracoApiController? https://our.umbraco.org/documentation/reference/routing/webapi/ –

+0

因爲我不希望Url – GiuServ

+0

中的'/ Umbraco /'足夠公平。選中此項:https://www.andreasjohansson.eu/technical-blog/configuring-custom-web-api-routing-for-umbraco-sites/,但忽略3+項,並用覆蓋項替換爲簡單的EventHandler。它應該做它的工作。 –

回答

0

改爲使用RouteTable.Routes.MapRoute。我之前在Umbraco的網站上使用過它,並且工作正常,例如

RouteTable.Routes.MapRoute(
       name: "cookie-api-location", 
       url: "cookie-api/setregioncheckcookie/", 
       defaults: new 
       { 
        controller = "Cookie", 
        action = "SetRegionCheckCookie" 
       } 
      );