ASP.NET MVC 2 コントローラーとアクションは、UpperCamelCase を使用します。
何らかの理由で、SO を含む多くの大きなサイトでは、URL のコントローラーとアクションに小文字 (アンダースコア付き) を使用しています。例:
https://stackoverflow.com/questions
https://stackoverflow.com/users/377920/randomguy
http://www.reddit.com/ad_inq/
http://www.wired.com/special_multimedia/mobile/
etc.
これがどのように達成されるか知りたいです。
デフォルトのルーターは大文字と小文字を区別しないようです。stackoverflow.com/questions/ask
問題なく Questions-controller の Ask() メソッドに送られます。
questions/add_to_favorites
ただし、 Questions-controller の AddToFavorites() アクションに向けたいとします。
- これはどのように達成されますか?
- HTML ポイント内のリンクを の代わり
Html.ActionLink("add_to_favorites")
に の代わりに使用する必要がありますか?Html.ActionLink("AddToFavorites")
questions/add_to_favorites
Questions/AddToFavorites
編集:同様の投稿
アンダースコアをサポートする 1 つの方法は、ActionName 属性を使用することです。
[ActionName("add_to_favorites")]
public ActionResult AddToFavorites() {
// ...
}
ただし、これはコントローラーでは機能しません。おそらく、ルーティング メカニズムに到達する前に、リクエストからアンダースコアをすべて削除できれば、うまくいくでしょう。