MVC 4 Web API - 复合键的路由

时间:2012-07-05 11:52:38

标签: asp.net-mvc asp.net-mvc-4

我正在努力制定支持以下简单方案所需的路由配置:

http..service/api/objects/key1/key2

我觉得我已经尝试了一切。

最大的问题是,只要看起来我已经破解了它,我就会发现

http..service/api/objects/key1 

被路由到无参数IQueryable Get。

1 个答案:

答案 0 :(得分:4)

我想我已经钉了它。

routes.MapHttpRoute(
    name: IQueryableObjectsApiRouteName,
    routeTemplate: "api/objects",
    defaults: new { controller = "objects" }
);

routes.MapHttpRoute(
    name: ObjectsApiRouteName,
    routeTemplate: "api/objects/{siteId}/{assetId}",
    defaults: new { controller = "objects", siteId = "", assetId = "" }
);

我需要使用复合键为每个控制器设置两个显式路由。键的默认值为“”,我在控制器中检测到并抛出自己的404。

它对我有用。我现在可以去吃午饭了。