0

これが私のコードです:

public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                "Default", // Route name
                "{action}/{id}", // URL with parameters
                new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
            );

            routes.MapRoute(
                "Admin", // Route name
                "{controller}/{action}/{id}", // URL with parameters
                new { controller = "Admin", action = "Index", id = UrlParameter.Optional } 
            );  
        }

最初のリンクについては、localhost / song localhost / dateなどに移動するとうまく機能します。これにより、ホームコントローラーの下にあるすべてのリンクが開きます。

しかし、2番目のmaprouteの場合:localhost / admin localhost / admin / index-これらのリンクは機能していませんか?誰かが私が間違っていることを教えてもらえますか?

4

1 に答える 1

1

まず、デフォルトルートはリストの最初ではなく最後でなければなりません。

次に、2つのデフォルトルートがあります。MVCはどちらを使用するかを知る方法がないため、常に最初に一致するものを選択します。代わりに、管理者のURLは次のようになります。"Admin/{action}/{id}"

于 2012-09-16T19:27:42.180 に答える