0

asp.netMVC4アプリのいくつかのURLを短くしたいと思います。たとえば、私はAccountコントローラーとそのようなアクションを持っていForgotPasswordます。URLは次のようになります

http://www.mydomain.com/account/forgotpassword

実際のコントローラーとアクションの名前を変更せずに、URLを短くしたいと思います(以下の例)。それを行うための最良の方法は何ですか?

http://www.mydomain.com/a/fp
4

3 に答える 3

2

簡単なルートを登録できます。

routes.MapRoute(
   name: "ForgottenPassword",
   url: "a/fp",
   defaults: new { controller = "Account", action = "ForgottenPassword" }
);

...MVC4を使用している場合はRouteConfig.cs内。

于 2013-03-26T08:13:40.953 に答える
0

私が間違っていなければ、Friendly URLについて話しているのですか?

@ quysnhat.wordpress.comをご覧ください

ハンゼルマンのウェブにとても素敵な投稿がありました。

また、フレンドリーなURLに関連する質問はほとんどありませんでした(それがあなたを助ける場合に備えて):-

ASP.NET MVCでわかりやすいURLを作成するにはどうすればよいですか?

http://www.intrepidstudios.com/blog/2009/2/10/function-to-generate-a-url-friendly-string.aspx

于 2013-03-26T08:17:05.893 に答える
0

最も簡単ですが、最善の方法ではありませんが、カスタムルートを手動でコーディングすることです。

routes.MapRoute(
    name: "AccountForgotRoute",
    url: "a/fp/{id}",
    defaults: new { controller = "Account", action = "ForgotPassword", id = UrlParameter.Optional }        
);

その欠点は、大量のコントローラーとアクションメソッドがあり、それらすべてを「短縮」したい場合は、多くのルートを作成する必要があることです。

1つの代替方法は、データベースでカスタムルートを定義し、それをファイルに書き出すことです。たとえば、データベースの行にaccountcontroller-forgotpassword値がのキーがある場合a/fp、ルート定義を動的に作成し、ファイルに書き込んで、アプリケーションに取得させます。アプリケーションがルート定義を取得する方法は、次のように実行できます。そのリンクはMVC4にも引き続き適用できます。しかし、これは本当に厄介なIMOですが、代替手段です。

于 2013-03-26T09:02:12.983 に答える