Asp.net web api Web API嵌套路由未按预期工作

Asp.net web api Web API嵌套路由未按预期工作,asp.net-web-api,asp.net-web-api-routing,Asp.net Web Api,Asp.net Web Api Routing,我在嵌套Web API路由设置方面遇到困难 给定的路由配置为: config.Routes.MapHttpRoute( name: "UsersGroups", routeTemplate: "api/users/{userID}/groups/{groupID}", defaults: new { controller = "UsersGroups", groupID = UrlParameter.Optional } ); 控制器的动作如下: public Auth

我在嵌套Web API路由设置方面遇到困难

给定的路由配置为:

config.Routes.MapHttpRoute(
    name: "UsersGroups",
    routeTemplate: "api/users/{userID}/groups/{groupID}",
    defaults: new { controller = "UsersGroups", groupID = UrlParameter.Optional }
);
控制器的动作如下:

public AuthGroup Get(long userID, int groupID)
{
     //Get specific group here
}

public IEnumerable<AuthGroup> Get(long userID)
{
    //get all groups for user here
}
public AuthGroup Get(长用户ID,int-groupID)
{
//在这里获取特定组
}

public IEnumerable我认为我所拥有的应该是正确的,但显然它没有像它看起来应该的那样工作。

您应该使用
RouteParameter.Optional
(来自Web API),而不是
UrlParameter.Optional
(来自ASP.NET MVC)

到时候一切都会按照你的意愿进行

更多信息:

  • UrlParameter.可选

  • 路由参数。可选


完全正确。我的错误是在MVC配置部分添加路由映射,然后在以后移动它们——我选择了UrlParameter.Optional,不管我看了多少次,我都没有注意到区别。谢谢