0

この瞬間、私は次のMapRouteを持っています

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Home", action = "Index", id = UrlParameter.Optional },// Parameter defaults
            new { controller = @"[^\.]*" }                          // Parameter constraints 
        );

私が定義した制約はcontroller=@"[^。]*"です。

「Images」という名前のコントローラーも回避するための制約が必要です。

これどうやってするの??

4

1 に答える 1

1

ドットは文字クラスで特別な意味を持たないため、ドットをエスケープする必要はありません。

このために、ネガティブ先読みを使用できます。

new { controller = @"(?!Images)[^.]*" }

負の先読みはアンカーであり、^またはのように、正規表現内のテキストを消費せず、入力テキスト内の位置$を探します。ルックアラウンドの別名は、ゼロ幅アサーションです。

于 2013-01-14T12:30:30.060 に答える