您好,我对 mvc 4 中的模型有点困惑,并认为有人可以为我指出正确的方向。这将不胜感激。
例如,如果我有一个包含以下字段的表
[StringLength(100, ErrorMessage = "The {0} must be at least {2} characters long.", MinimumLength = 5)]
public string UserName { get; set; }
[Required(ErrorMessage="Email Address is Required")]
[StringLength(15, ErrorMessage = "Email Address must be between {0} and {1} in size",MinimumLength = 5 )]
[DataType(DataType.EmailAddress)]
[Display(Name="Email")]
public string Email { get; set; }
[MaxLength(25)]
[Display(Name="Mobile Telephone Number")]
public string Mobile {get;set;}
[MaxLength(500)]
[Display(Name="Headline")]
public string Headline {get;set;}
[Required]
[StringLength(200)]
[Display(Name = "First Name")]
public string FirstName {get;set;}
[Required]
[StringLength(200)]
[Display(Name="Surname")]
public string Surname { get; set;}
public virtual int? DayOfBirthId { get; set; }
public virtual DayOfBirth DayOfBirth { get; set; }
public virtual int? MonthOfBirthId { get; set; }
public virtual MonthOfBirth MonthOfBirth { get; set; }
public virtual int? YearOfBirthId { get; set; }
public virtual YearOfBirth YearOfBirth{get;set;}
这是我在数据库中的用户配置文件表。但是,我想要一个用户注册到网站的表格。当他们第一次注册时,我不需要电话等所有详细信息,我真正需要的只是用户名、电子邮件地址和密码。我是否为此创建另一个模型。或者我有一个模型,并且在控制器上将字段设置为 null 或空字符串,这在注册时不需要。我也进行了验证,因此将为尚未在表单中输入的数据设置此设置。
我的问题最终是所有形式都应该代表模型——是否应该重新设计数据库以满足这一要求。或者控制器应该设置不需要的值。或者是否应该有另一个模型来表示要创建的映射到该表的表单。
我对此有点困惑,任何人的澄清将不胜感激。