このシナリオのビュー モデル クラスを作成する必要がありますか、それとも実際のアカウント モデル クラスを使用する必要がありますか?
はい、必要なアクションを表すモデルを作成することをお勧めします。これにより、投稿の過不足を防ぐことができます。したがって、ユーザーが作業することが期待されるプロパティで作業します。たとえばAccountModel
、多くのプロパティを持つ があり、1 つのアクションで 10 個のadd
プロパティと 1 つのアクションで 5 つのプロパティだけを操作する必要があるedit
場合、2 つの ViewModel を作成します。
// your model or entity
public class AccountModel {
// the list of properties goes here
}
// your view models
public class CreateAccountModel {
public string Username {get;set;}
public string Password {get;set;}
public string Phone {get;set;}
}
// this model is for the scenario
// where you want users to edit their basic info
// but not the password (e.g. you have a separate
// functionality for changing the password)
public class EditAccountModel {
public string Username {get;set;}
public string Phone {get;set;}
}
ビューモデルを実際のモデルまたはエンティティにマッピングするには、マッパー ツールを使用するか、自分で行うことができます (面倒ですが、小さなモデルのオプションです)。手順は次のとおりです。
- 投稿からモデル/エンティティを受け取ります
- データベースからエンティティをクエリします
- ビューモデルからモデル/エンティティに値をコピーします
- モデル/エンティティをデータベースに保存します
ビューモデルクラスを正確にどこに保存する必要がありますか
Models
作成されたフォルダーの下の MVC プロジェクトに含めることができます。これは実際には好みであり、特にアプリケーションのレイヤー化を開始する場合は、標準的な方法はありません。より意味のある場所に置きます。