0

ルーティングを正しく機能させるのに少し問題があります。IIS 5.1 をサポートする必要があるため、コントローラーの末尾に .mvc を付けたいと思います。現在持っているものは次のとおりです。

routes.MapRoute(
            name: "Default",
            url: "{controller}.mvc/{action}",
            defaults: new { controller = "App", action = "Home" }
        );

これは失敗します。.mvc を削除すると、期待どおりに動作します。また、奇妙なことに、コントローラーとアクションの間に別のパスを追加すると、機能します。このような:

routes.MapRoute(
            name: "Default",
            url: "{controller}.mvc/Anything/{action}",
            defaults: new { controller = "App", action = "Home" }
        );

誰かがこれの理由を知っていますか?

前もってありがとう、ライアン。

4

2 に答える 2

1

私は以下のようなコードで試しました

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

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

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

正しく動作します。アプリケーションでこれらのコードを試してください。

于 2013-05-21T04:38:23.220 に答える
0

IIS が要求を静的ファイルとして扱っているか、別のハンドラーが要求を受信して​​処理している可能性があります。

この場合、 IIS で.mvc拡張子のハンドラー マッピングを追加し、ASP.NET を使用していることを確認する必要があります。

于 2013-05-21T02:56:28.667 に答える