1

我在我的 中设置了以下两个操作ApiController

[POST("api/admin/image/{id}/upload")]
[Authorize(Roles = RoleNames.Administrator)]
public Foo UploadVersion(int id)

public Bar Post(int id, Baz x) {}

鉴于此路由配置,它们是冲突的:

context.Routes.MapHttpRoute(
    name: "Admin_Api",
    routeTemplate: "api/admin/{controller}/{id}",
    defaults: new 
        {
             id = RouteParameter.Optional
        });

我的猜测是,它UploadVersion也会通过路由映射获得某种默认路由,但我该如何防止呢?

如果有人想知道我要做什么:

POST /api/admin/image/{id}/upload -> UploadVersion()
POST /api/admin/image/{id}        -> Post()
4

1 回答 1

1

根据你设置的路由,它们是同一条路由,没有办法区分。你每次都会得到这条路线:

POST /api/admin/image/{id}        -> Post()

尝试修改您的路线,使它们看起来像这样:

POST /api/admin/image/upload/{id} -> UploadVersion()
POST /api/admin/image/{id}        -> Post()
于 2013-08-09T14:17:52.947 回答