1

アプリケーションにURLルーティングを使用していて、staff /で始まるものでURLルーティングが発生しないようにしたいのですが、次のコードを使用しても機能しません。ASP.Netを取得してURLルーティングがスタッフディレクトリに接触しないようにするにはどうすればよいですか。そしてそれはサブディレクトリですか?

    private static void RegisterRoutes(RouteCollection Routes)
{
    //URLs to ignore routeing on
    RouteTable.Routes.Ignore("staff/");

    //Good routes
    Routes.MapPageRoute("Reviews", "{Category}/{RouteName}/Reviews.aspx", "~/RouteFiles/Reviews.aspx");
    Routes.MapPageRoute("Races", "{Category}/{RouteName}/Races.aspx", "~/RouteFiles/Races.aspx");
    Routes.MapPageRoute("SectionHomePage", "{Category}/{RouteName}", "~/RouteFiles/SectionHomePage.aspx");
}
4

2 に答える 2

1

私が想定しているMVCではなくWebFormsを使用している場合は、StopRoutingHandlerを使用してみてください。

routes.Add(new Route("staff/", new StopRoutingHandler()));

使用Routes.IgnoreはMVCでは機能する可能性がありますが(それについてはよくわかりません)、WebFormsアプリケーションでは機能しません。

StopRoutingHandlerをこのパスのデフォルトハンドラーとして割り当てることにより、基本的に、すべての要求をこのハンドラーで処理する必要があることをアプリケーションに通知します。これにより、このディレクトリ内での後続のすべてのルーティング試行がブロックされます。

于 2012-10-02T23:44:11.577 に答える
0

解決策は、RouteTable.Routes.Ignore()エントリを作成することです。

于 2013-10-18T22:26:32.033 に答える