我应该为这种情况创建一个 View Model 类还是应该使用实际的 Account 模型类?
是的,最好创建一个模型来代表您需要的操作,并这样做以防止发布不足和过度发布。所以你在你期望用户工作的地方工作。例如,如果你有一个AccountModel
有很多属性的,你只需要在一个动作上处理它的十个,在一个add
动作上处理它的五个属性edit
,那么你创建两个 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;}
}
现在要将您的视图模型映射到您的实际模型或实体,您可以使用映射器工具或自己做(很累,但对于小模型来说是一个选项)。以下是步骤:
- 您从帖子中收到模型/实体
- 您从数据库中查询您的实体
- 您将值从视图模型复制到模型/实体
- 您将模型/实体保存回数据库
我到底需要在哪里存储 View Model 类
您可以将它放在您的 MVC 项目Models
中创建的文件夹下。这实际上更像是一种偏好,并且没有标准的方法 - 特别是当您开始分层应用程序时。把它放在更有意义的地方。