Lose.zhang 发表于 2012-12-10 14:14:10

爱上MVC3系列~使用视图模型的好处及与数据模型之间的赋值问题

<div id="cnblogs_post_body">MVC开发应用程序有个问题,很多开发者不知如何去使用页面模型,大多数开发者认为为每一个页面去设计一个实体是多余的,所以他们使用数据库实体来代码页面视图模型,事实上,这样做的好处就是节省的代码,但不好的地方是什么呢?我来总结一下吧:
1 方便根据每一种业务逻辑和前台页面表现,去对模型进行特性的设置
2 前台UI部分与业务层与数据库层可以更加独立,前台页面模型并不依赖于数据库模型
3 可以根据具体业务,去分别设置它们的验证及约束关系
好了,上面我说了3点不使用viewModel的缺点,事实上,确实是这样的,比如,你的userbase实体,如果它需要提供两种业务,如“登陆”和“注册”,那么它的前台信息展现与验证业务肯定是不相同的,这时,如果使用ViewModel就很容易的解决了这个问题。
以下是用户模型的代码片断
<div class="cnblogs_code"> 1   /// <summary> 2   /// 用户登陆视图模型 3   /// </summary> 4   public class UserBaseLogOnModel 5     { 6        7         "用户名")] 8         public string Name { get; set; } 9       10       11         "密码")]12         public string Password { get; set; }13       14         "真实姓名")]15         public string RealName { get; set; }16     }17   /// <summary>18   /// 用户注册模型19   /// </summary>20   public class UserBaseRegisterModel21     {22       23         "用户名")]24         public string Name { get; set; }25       26       27         "密码")]28         public string Password { get; set; }29       30       31         "密码")]32         "Password", ErrorMessage = "新密码和确认密码不匹配。")]33         public string ConfirmPassword { get; set; }34       35         "真实姓名")]36         public string RealName { get; set; }37       38       39         "电子邮件")]40         public string Email { get; set; }41       42       43         "电话")]44         public string Tel { get; set; }45       46         "证件类型")]47         public SelectList IDType { get; set; }48       49         "证件号码")]50         public string IDNumber { get; set; }51   }
页: [1]
查看完整版本: 爱上MVC3系列~使用视图模型的好处及与数据模型之间的赋值问题