DNN服务路由映射器中的多个路由无法正常工作

时间:2014-12-02 02:36:48

标签: asp.net-web-api dotnetnuke

我开始使用DNN,并且正在尝试设置控制器和服务路线但由于某种原因它无法正常工作我想我可能会遗漏某些内容或者对其工作方式有错误的理解

我有一个控制器,有两个动作

public class Name : DnnApiController{

  public GetApple(string id){

  }

 public GetOrange(string id){

  }
}

我已将服务路由创建为

public class RouteMapper : IServiceRouteMapper
{
    public void RegisterRoutes(IMapRoute mapRouteManager)
    {
        mapRouteManager.MapHttpRoute("Name", "Apple1", "{controller}/{action}/{id}", new[] {"MyServices"});

      mapRouteManager.MapHttpRoute("Name", "Orange2", "{controller}/{action}/{id}", new[] {"MyServices"});
    }
}

当我运行它时,只有一个动作得到解决,而另一个动作得到400 ...

有什么建议吗?为什么呢?

1 个答案:

答案 0 :(得分:0)

尝试以下面的方式声明您的路线

routeManager.MapHttpRoute("ModuleName", "Apple1", "{controller}/{action}/{ID}", new string[] { "YourNameSpace.Services.Controllers" });

确保将YourNameSpace替换为模块的名称空间和您的模块名称

您要求获得服务的网址是什么?

这假定采用以下类型的设置:

namespace Services.Controllers
{
    public class NameServiceController: DnnApiController, IServiceRouteMapper
    {
    }
}

另外,我非常确定您的控制器类名称需要以Controller字结尾,当您引用该url时,您会忽略控制器

所以网址格式如下:

DesktopModules / [ModuleName] / api / [ControllerName(从控制器中删除控制器)] / [操作名称] / [id]

www.yourportal.com/desktopmodules/ModuleName/NameService/Apple1/ID

希望这有帮助