web-dev-qa-db-ja.com

ASP.NET MVCコントローラーの名前付けの複数化

RESTful規則は、単一のオブジェクト上で複数名詞を使用することを示します。

ASP.NET MVCコントローラーに名前を付けるための複数形の規則、つまり.
ProductControllerまたはProductsController

77
Petrus Theron

一部のMVCフレームワークは複数形を使用しますが、MVCプロジェクトテンプレートにはAccountControllerと呼ばれるコントローラーが含まれているため、単一の命名が提案されています。

関係ありません。 Asp.net MVCフレームワークのほとんどのものと同様に、選択はあなた次第です。実際の規則はありません。

私個人の意見ですが、重要なのはスキームを選択して一貫性を保つことです!

40
Cybermaxs

私は、複数形または単数形のいずれかを使用し、一貫性を保つという以前の回答に反対する必要があります。各コントローラーは、単一または複数のエンティティと対話するかどうかに基づいて、異なる規則を使用する必要があります。特に、コントローラ名はデフォルトでURLで使用されるためです。

プロジェクトテンプレートは単数形(HomeController、AccountController)を使用しますが、Homeアクションは1つだけで、Accountアクションはセッションの単一のアカウントでのみ動作します。/homesのURLがホームページにアクセスすることや、アカウント設定を管理するために/ accountsにアクセスすることは期待していません。

複数のHomesController wouldは、複数の住宅の一覧表示と検索に関連するメソッドを備えた不動産ウェブサイト/ homes/new-listingsで機能します。

130
LouD

エンティティフレームワークエンティティのMVC足場を使用してコントローラーを追加すると、VS2013はコントローラー名を複数にするため、エンティティのコントローラーを複数にするデフォルトを使用することをお勧めします。

更新:気が変わった。 LouDは正しいです。コントローラのコンテキストに依存します。

12
RitchieD