最も簡単ですが、最善の方法ではありませんが、カスタムルートを手動でコーディングすることです。
routes.MapRoute(
name: "AccountForgotRoute",
url: "a/fp/{id}",
defaults: new { controller = "Account", action = "ForgotPassword", id = UrlParameter.Optional }
);
その欠点は、大量のコントローラーとアクションメソッドがあり、それらすべてを「短縮」したい場合は、多くのルートを作成する必要があることです。
1つの代替方法は、データベースでカスタムルートを定義し、それをファイルに書き出すことです。たとえば、データベースの行にaccountcontroller-forgotpassword
値がのキーがある場合a/fp
、ルート定義を動的に作成し、ファイルに書き込んで、アプリケーションに取得させます。アプリケーションがルート定義を取得する方法は、次のように実行できます。そのリンクはMVC4にも引き続き適用できます。しかし、これは本当に厄介なIMOですが、代替手段です。