通常、アクション (「転送」) に到達するために代替またはレガシー ルートを追加した場合でも、URL を生成するときに使用されるデフォルト ルート (「逆方向」マッピング) が必要です。
routes.MapRoute("Legacy", "legacy/home/index", // want forward-only mapping!
new { controller = "Home", action = "Index" };
routes.MapRoute("Default", "{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
この場合、次の呼び出し時にデフォルト ルートを使用する必要があります。
@ActionLink("Index", "Home") // generates legacy URLs ;(
スレッド:クエリ文字列を使用する場合と使用しない場合のレガシー リクエストのルーティング(問題 #1) では、解決策は、レガシー ルートごとに 2 つの MapRoute ステートメントを追加するか、各 ActionLink 呼び出しでルート名を指定することです。
逆ではなく、URL -> アクション マッピングのみに使用されるルートを定義する方法はありますか?