1

次の 2 つのアクションが my に設定されてい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 に答える