Umbraco 7路由到自定义控制器的其余API

问题描述:

我想映射路由到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。它应该做它的工作。 –

改为使用RouteTable.Routes.MapRoute。我之前在Umbraco的网站上使用过它,并且工作正常,例如

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