2011-05-19 97 views
1

我有兩個型號,即登錄和註冊:在模型中使用相同命名屬性時不顯示驗證消息?

登錄型號

public class LoginModel 
    { 
     [Required(ErrorMessage = "Email is required")] 
     [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Not a valid email")] 
     [DataType(DataType.EmailAddress)] 
     [DisplayName("Email")] 
     [StringLength(150, ErrorMessage = "Must be less than 150 characters")] 
     public string Email { get; set; } 

     [Required(ErrorMessage = "Password is required")] 
     [DataType(DataType.Password)] 
     [DisplayName("Password")] 
     [StringLength(30, ErrorMessage = "Must be less than 30 characters")] 
     public string LoginPassword { get; set; } 

     [DisplayName("Remember me")] 
     public bool Remember { get; set; } 

    } 

註冊型號:

public class RegisterModel 
    { 
     [Required(ErrorMessage = "Email is required")] 
     [RegularExpression("^[a-z0-9_\\+-]+(\\.[a-z0-9_\\+-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\\.([a-z]{2,4})$", ErrorMessage = "Not a valid email")] 
     [DataType(DataType.EmailAddress)] 
     [DisplayName("Email")] 
     [StringLength(150, ErrorMessage = "Must be less than 150 characters")] 
     public string Email { get; set; } 

     [Required(ErrorMessage = "Full Name is required")] 
     [DisplayName("Full Name")] 
     [StringLength(50, ErrorMessage = "Must be less than 50 characters")] 
     public string FullName { get; set; } 

     [Required(ErrorMessage = "Password is required")] 
     [DataType(DataType.Password)] 
     [DisplayName("Password")] 
     [StringLength(30, ErrorMessage = "Must be less than 30 characters")] 
     public string RegisterPassword { get; set; } 

     [Required(ErrorMessage = "Confirm Password is required")] 
     [DataType(DataType.Password)] 
     [DisplayName("Confirm Password")] 
     [StringLength(30, ErrorMessage = "Must be less than 30 characters")] 
     public string ConfirmPassword { get; set; } 

     [Required(ErrorMessage = "Please read and agree the terms and condition.")] 
     [DisplayName("I agree to the terms and conditions")] 
     public bool AgreeTerms { get; set; } 

    } 

,他們都被稱爲使用一個單獨的模態彈出窗口的主頁上 - >因此可以說,如果用戶註冊自己(並註冊時他按下輸入,而不輸入電子郵件,並顯示驗證信息)。成功註冊後,用戶嘗試登錄(並且他再次按下輸入,而不輸入電子郵件),但此時不顯示驗證消息。

據我所知,未顯示驗證摘要的原因是驗證消息出現在當前不可見的註冊模式中,這是因爲兩種模型都使用電子郵件(名爲:Email)字段屬性。

我可以實現我對電子郵件字段使用不同名稱的願望行爲,但有沒有這樣做的方式?

除此之外,我可以從Register模型繼承並將其用於登錄目的,同時這麼做會是我上述場景的輸出嗎?

回答

相關問題