0

現在、(Manage) という名前のコントローラーがあります。のようなリンクが欲しい

Manage/Users/{userid}/{manageType}
Manage/Pages/{pageid}/{manageType}

アクションの manageType を指定できる場所 (設定、ユーザー名、説明)。

これらすべての属性を持つことができるように、Manage Controller でこれを構造化する最良の方法は何ですか? 他のアクション内に複数のアクション関数が存在する可能性はありますか? 例えば

ManageController
-> viewResult Users(int userID)
-> viewResult Pages(int pageID)
-> viewResult Type(string typeID)

リンクから ID を取得した後、ユーザーとページがタイプを指す場所。

4

1 に答える 1

2

「他のアクション内に複数のアクション関数が存在する可能性はありますか?」それはどのように機能しますか?アクション メソッドは通常の .NET メソッドにすぎません。アクション内のアクションは、あまり意味がありません。

すべてを 1 つのコントローラーにまとめたい場合は、次のようなものが必要です。

public ActionResult UserSettings(int userid) { /*...*/ }
public ActionResult UserName(int userid) { /*...*/ }
public ActionResult UserDescription(int userid) { /*...*/ }
public ActionResult PageSettings(int userid) { /*...*/ }
public ActionResult PageName(int userid) { /*...*/ }
public ActionResult PageDescription(int userid) { /*...*/ }

次のようにルーティングを配線できます。

routes.MapRoute(
                name: "Default",
                url: "Manage/Users/{userid}/Settings",
                defaults: new { controller = "Manage", action = "UserSettings" },
                constraints = new { userid = @"\d+" }
            );

于 2013-08-04T21:23:37.253 に答える