0

ここに私のルート設定があります

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

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}/",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
        //routes.MapRoute(
        //    name: "Default2",
        //    url: "{controller}/{action}/",
        //    defaults: new { controller = "Home", action = "Index" }
        //);
    }

入力すると

http://localhost:62378/thiscontrollerdoesnotexist

それは私にこのメッセージを与える

「/」アプリケーションでサーバー エラーが発生しました。リソースが見つかりません。説明: HTTP 404。探しているリソース (またはその依存関係の 1 つ) は、削除されたか、名前が変更されたか、一時的に利用できない可能性があります。次の URL を見直して、スペルが正しいことを確認してください。

要求された URL: /thiscontrollerdoesnotexist

しかし、ルートをこれに変更すると

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

            routes.MapRoute(
                name: "Default",
                url: "{controllerhithere}/{action}/{id}/",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
            //routes.MapRoute(
            //    name: "Default2",
            //    url: "{controller}/{action}/",
            //    defaults: new { controller = "Home", action = "Index" }
            //);
        }

{controller} を {controllerhithere} に変更しました。入力すると

http://localhost:62378/thiscontrollerdoesnotexist

それは私を連れて行きます

http://localhost:62378/thiscontrollerdoesnotexist

しかし、ホームページを示していますか?

これはどうですか?

4

1 に答える 1

0

このプロジェクト: http://www.codeproject.com/Articles/299531/Custom-routes-for-MVC-Application#premain7

次の行を global.asax に追加できます

RouteDebug.RouteDebugger.RewriteRoutesForTesting(RouteTable.Routes);

これにより、ルーティングをデバッグでき、何が一致し、何がオーバーライドされているかを判断できます。

ここに画像の説明を入力

于 2013-03-15T16:39:05.137 に答える