2

我有MVC 5項目使用不引人注目的驗證:DataTypeAttribute和不顯眼的驗證

<appSettings> 
    <add key="ClientValidationEnabled" value="true" /> 
    <add key="UnobtrusiveJavaScriptEnabled" value="true" /> 
</appSettings> 

,這裏是我的模型類:

public class LoginModel { 
    [DataType(DataType.EmailAddress, ErrorMessage = "Problem address")] 
    [Required] 
    public string Mail { get; set; } 

    [DataType(DataType.Password)] 
    [Required] 
    public string Password { get; set; } 
} 

當我進入郵件領域無效值我總是得到標準「請輸入有效的電子郵件地址。」這是硬編碼在jquery.validate.js。我的ErrorMessage值被忽略。爲什麼?此外,如果刪除ErrorMessage參數,那麼與其他驗證屬性(Required,StringLength)不同,標準消息不是本地化的。我錯過了什麼?

回答

1

的數據類型屬性的目的不是驗證,它是用於格式化視圖的數據,選擇輸入字段的類型,以生成等

錯誤消息來自驗證屬性。嘗試:

[EmailAddress(ErrorMessage = "Problem address")] 
public string Email{ get; set; } 
+0

如果DataType屬性的目的不是驗證(因爲此主題上的每個線程均指明)爲什麼要使用它添加驗證?我專門用它來允許「電子郵件」類型的html輸入,但隨之而來的是我不想要的驗證。 – xr280xr