9

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

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

我觉得我什么都试过了。

最大的问题是,每当它看起来像我已经破解它时,我发现

http..service/api/objects/key1 

被路由到无参数的 IQueryable Get。

4

1 回答 1

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。

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

于 2012-07-05T13:01:04.883 回答