1

route.maproute でルックアップ値を定義する簡単な方法はありますか?

ルート例:

 routes.MapRoute(
              name: "example route", 
               url: "product/{subcat}", 
          defaults: new { controller = "Redirect", action = "ProcessPage"}
      );

ここで: {subcat} は次の値のみにすることができます: subcat1、subcat2、subcat3

古いサイトから新しいサイトへのリダイレクトを書き込もうとしています (IIS を使用できません)。古いサイトには一貫した URL がなく、それらのいくつかは新しいサイトのパターンに該当します。リダイレクトごとにルートを書くことは避けたいと思います。

4

1 に答える 1

0

正規表現を使用してルート値を制限できます。

routes.MapRoute(
    name: "example route", 
    url: "product/{subcat}", 
    defaults: new { controller = "Redirect", action = "ProcessPage"},
    constraints: new { subcat = @"^subcat\d*$ }
);

ここでは、制約が「subcat」に整数が追加されていると想定しています(これは、質問から抽出できる最高のものです)-要件を満たすようにこれを変更します。明示的な値のセットが必要な場合は、受け入れられる文字列のリストで正規表現 OR 演算子を使用できます。

@"^subcat1|subcat2|subcat3$"
于 2013-12-17T18:58:09.453 に答える