将模型用于多种用途

时间:2013-05-23 14:43:40

标签: asp.net-mvc entity-framework

我是使用Entity Framework的ASP.NET MVC的新手,我正在尝试创建一个简单的登录系统。目前我有UserProfile模型,我希望模拟一个登录表单。

UserProfile.cs

namespace MyProject.Areas.Admin.Models
{
    public class UserProfile {

        [Key]
        public int UserID { get; set; }

        [Required]
        [Display(Name = "Username")]
        public string Username { get; set; }

        [Required]
        [DataType(DataType.Password)]
        [Display(Name = "Password")]
        public string Password { get; set; }

        public string FirstName { get; set; }
        public string Surname { get; set; }
        public string EmailAddress { get; set; }
        public string Telephone { get; set; }

    }
}

由于我的登录表单只需要用户名和密码,因此创建一个单独的模型(例如,只有这些属性的LoginModel,或者我应该使用{{1模型?

我觉得创建一个单独的模型来模拟登录提交感觉更好,但后来我遇到了让它们引用同一个表的问题?

由于

2 个答案:

答案 0 :(得分:4)

您应该只有一个Model(域模型),但不同的ViewModel类。

ViewModel只会包含特定View / Action所需的属性(来自模型)。

要管理ModelViewModel(s)之间的映射,您应该查看映射解决方案(如AutoMapper,ValueInjecter ......)

答案 1 :(得分:0)

看起来你应该区分视图模型和域模型。有趣的讨论是here