1

私はすべて、

前の質問で、次のURLを処理するカスタムルートを定義する方法を尋ねました。

http://www.example.com/User/Profile/Edit/{userProfileID}

UserオブジェクトとUserProfileオブジェクトがありますが、両方のオブジェクトのアクションに使用できるようにしたいUserControllerのみです。UserControllerには、ユーザーの編集を処理するEditというメソッドが既にあります。ただし、UserProfileを編集するためのメソッドも必要です。私のルーティングの質問に対する答えは、次のルートでした。

routes.MapRoute(
    "ProfileleRoute", // Route name
    "User/Profile/{action}/{userProfileID}", // URL with parameters
    new { controller = "User", action = "Index" } // Parameter defaults
);

しかし、そのカスタムルートを考えると、UserProfileの編集アクションをどこで宣言する必要があり、それを何と呼ぶ必要がありますか?ユーザー編集を処理するメソッドがすでにあるため、UserControllerでEditという別のメソッドを記述できなかったようです。

そのため、「ユーザー/編集」と「ユーザー/プロファイル/編集」のルートを処理するために、2つの編集アクションが必要になると思います。これを回避するにはどうすればよいですか?

どうもありがとう。

4

1 に答える 1

0

フレームワークが実行するアクションを選択するとき、最初にリクエストに一致する HttpPost または HttpGet 属性で必要な名前のアクションをチェックします。アクションがこのように選択されていない場合は、名前に一致するアクションを選択します。したがって、HttpPost または HttpGet 属性のない同じ名前の 2 つのアクションがある場合、実行されるアクションを制御することはできません。

于 2010-11-02T18:34:43.560 に答える