0

複数のパラメーター名を持つ同じエリア内の複数のコントローラーにルーティング マップを提供する方法を知っている人はいますか?

一意のパラメーター名を持つ各コントローラーのパラメーター名なし (値のみ) の URL を提供する要求があります (あいまいさを避けるため)。

これは可能ですか?

この出力を URL で取得したいと思います。

/myAreaName1/mycontrollerName1/Edit/12/23
/myAreaName1/mycontrollerName2/Edit/someValue1/23

次のようなものを使用します。

context.MapRoute(
                "mapRouteName1",
                "myAreaName1/{controller}/{action}/{customID}/{sustomID2}",
                new { controller = "mycontrollerName1", action = "Index", customID= UrlParameter.Optional, sustomID2= UrlParameter.Optional },
                new string[] { "Project.Areas.SomeArea.Controllers" }
            );

context.MapRoute(
                "mapRouteName1",
                "myAreaName1/{controller}/{action}/{customValue}/{sustomID3}",
                new { controller = "mycontrollerName2", action = "Index", customValue= UrlParameter.Optional, sustomID3= UrlParameter.Optional },
                new string[] { "Project.Areas.SomeArea.Controllers" }
            );
4

1 に答える 1

1

RegExルートを使用する必要があります(これに関する記事を使用して、一度作成する方法をガイドしました...うまくいきました)。私は過去にこの種のものにそれらを使用しました。バグにつながる可能性があるため、これを行わないことをお勧めします。すべての数値に基づいてキャッチする正規表現ルールを追加し、parm に数値以外の値がある場合は他のルートを使用するとどうなりますか? ユーザーはその場所にすべての数値を入力しますか?? 見つけにくいバグにつながると思います。

もっと良いものが欲しいですか?企業はあなたがそれらの URL を使用することを主張しますか? また、URL 書き換えルールを使用して MVC フレームワーク外の別のルートに書き込んでから、ルートをより一意になるように変更することも検討できます。

于 2012-04-04T21:22:02.173 に答える