1

asp.net ルーティングを使用して、asp.net Web フォームに拡張子のない URL を実装しようとしています。

  routes.Add("MyRouting", new Route("{PagePath}",
 new MyRouteHandler("~/Default.aspx")));

この拡張子のない URL を実行すると問題なく動作しますが、ルーティング パスが実際の物理パスとして実際に存在する場合がいくつかありました。

例: ルートに Services という実際のフォルダーがあるため、localhost/Services は 404 例外をスローします。

ディレクトリのルーティングをスキップするにはどうすればよいですか?

ありがとう

4

1 に答える 1

1

次のコードは、入ってくる URL をより細かく制御するために必要な答えかもしれません。

public static void RegisterRoutes(RouteCollection routes) {

    // example: ignore routes with this file extension and with any extra text afterwards
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    ...

    // example: new route to modify an URL and remove the .aspx extension
    routes.MapRoute(
        "UrlManagerRoute",
        "{*url}",
        new { controller = "MyController", action = "MyAction" },
        new { url = @".*\.aspx(/.*)?" }
    );
    ...
}
于 2012-12-19T08:22:37.717 に答える