0

私は MVC 3 を使用しています。コントローラー内のアクション メソッドの名前に従って MVC が URL を設定することは誰もが知っていますが、少し変更する必要があります。

セキュリティ上の理由から、アクション メソッドの名前を URL に表示したくありません。したがって、Home コントローラーに index メソッドがある場合、URL は次のようになります。ただし、ブラウザーwww.server/home/indexに表示したいです。www.server/home/test属性を使ってこれを行うことができます[ActionName]が、他の方法はありますか?

これにカスタム ルート ハンドラを使用できますか?

4

1 に答える 1

0

ActionNameを使用する代わりに、カスタム ルートを定義して、必要なコントローラーとアクションに向けることができます。例えば:

routes.MapRoute("home/test", "home/test/{id}",
  new { controller = "Home", action = "Index", id = UrlParameter.Optional });

/home/testandのようなパスを取り/home/test/42、それらを Home コントローラーの Index アクションにルーティングします。

{id}不要な場合は、その部分を省くこともできます。例えば:

routes.MapRoute("home/test", "home/test",
  new { controller = "Home", action = "Index" });

のみかかり/home/testます。

これは、大文字のコントローラーとアクション名を維持しながら、小文字の URL を実現する方法でもあります。すべてのルートをハードコードするだけです。

于 2012-08-09T07:45:46.173 に答える