3

次のルートは、私の WebApiConfig.cs にあります。

// routing for /profile/
config.Routes.MapHttpRoute(
    name: "profile",
    routeTemplate: "users/{userid}/profil",
    defaults: new { controller = "User", userid = RouteParameter.Optional }
);

// routing for /messages/
config.Routes.MapHttpRoute(
    name: "messages",
    routeTemplate: "users/{userid}/messages",
    defaults: new { controller = "User", userid = RouteParameter.Optional }
);

そして、これはコントローラーの対応するコードです:

public class UserController {

    [HttpGet]
    [ActionName("profile")]
    public HttpResponseMessage GetProfile(int userid) {}


    [HttpGet]
    [ActionName("messages")]
    public HttpResponseMessage GetMessages(int userid) {}

}

したがって、基本的には、同じパラメーターを使用するが、異なる URL にマップされる 2 つのメソッドを同じコントローラーに配置したいと考えています。現在、ActionName 属性を区別しているにもかかわらず、複数のアクションが見つかったというエラーが発生し続けています。

私は何を間違っていますか?同じコントローラーで 2 つの GET メソッドを使用して、同じ入力を受け取り、異なる URL で呼び出すことはできますか?

ありがとう!

4

1 に答える 1

1

ルーティング定義に具体的にアクション名を追加しようとしましたか?

すなわち

 config.Routes.MapHttpRoute(
name: "profile",
routeTemplate: "users/{userid}/profil",
defaults: new { controller = "User", action="profil", userid = RouteParameter.Optional }

);

于 2012-10-01T10:32:54.850 に答える