2017-09-13 7 views
1

"/"、 "/ Home"、 "/ Home/Index"と一致するルートは必要ですが、 "/ Other"ではなく "Home/Other"ではありません。ルーティング、オプションのリテラルのルート?

3つのルートテーブルエントリを持つよりも良い方法はありますか?私は、デフォルトのメカニズムのようなものが欲しいですが、パラメータの代わりにリテラルだけが必要です。

いいアイデアはありますか?

答えて

0
routes.MapRoute(
      name: "default", 
      template: "{controller:regex(^(Home)$)}/{action:regex(^(Index)$)}", 
      defaults: new { controller = "Home", action = "Index" }); 

このコードは//Home/Home/Indexルートをキャッチします。あなたがルート内で "Other"を捕まえたくない場合は正規表現を^(?!Other).*$に置き換えてください。

+0

もっと良い方法があると思っていましたが、正規表現はうまくいきます。 –

関連する問題