0

重複の可能性:
ASP.NETMVC-すべてのルートとデフォルトルートをキャッチ

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

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

次のルーティングパターンを実装する簡単な方法はありますか?基本的に、コントローラーが存在しない場合は、キャッチオールを開始したいと思います。これらのページがデータベースに存在する場合、ページは動的に入力されます。それ以外の場合は、エラーをスローします。他のもので始まるルートは必要ありません。例えば

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

それぞれが個別に動作するように取得できますが、同時に動作させるのは少し難しいです。どこかで何かをオーバーロードする必要があると思います。答えを知っている教祖がそこにいるに違いありません!:D

4

1 に答える 1

0

これら 2 つのルートは、マッチングに関する限り、事実上同じものです。デフォルト ルートは、実際には、ユーザーを Home.Index に誘導するための包括的なものです。コントローラーまたはアクションが存在しない場合、404 エラーが発生します。Web 構成で 404 を特定のコントローラーにリダイレクトできます。

これは役に立つかもしれません: Returning 404 Error ASP.NET MVC 3

于 2012-10-02T16:22:38.210 に答える