我已經添加了以下自定義數據註釋驗證我的代碼爲我的文字區域(只允許有效的電子郵件ID)自定義數據標註工作不
public class ValidateEmails : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
if (value != null)
{
string[] commaLst = value.ToString().Split(',');
foreach (var item in commaLst)
{
try
{
System.Net.Mail.MailAddress email = new System.Net.Mail.MailAddress(item.ToString().Trim());
}
catch (Exception)
{
return new ValidationResult(ErrorMessage = "Please enter valid email IDs separated by commas;");
}
}
}
return ValidationResult.Success;
}
}
型號:
public class BuildModel
{
public Int64 ConfigID { get; set; }
[Required(ErrorMessage = "Please select a stream!")]
public string StreamName { get; set; }
[Required(ErrorMessage = "Please select a build location!")]
public string BuildLocation { get; set; }
public string Type { get; set; }
public bool IsCoverity { get; set; }
[ValidateEmails(ErrorMessage = "NOT VALID !!!")]
public string EmailIDsForCoverity { get; set; }
}
當我運行我的應用程序並在文本區域中輸入無效的字符串時,斷點會在驗證內部發生。但是,提交行爲仍然會發生。
實際上,我有一個引導模式窗體,我在其中進行驗證。點擊提交按鈕,內置的自定義驗證,如「必需」,效果很好。但是,我的自定義數據註釋驗證不起作用。我在這裏做什麼錯了?
你的'Model.IsValid'在你的行動檢查? – DavidG
你可以使用'RegularExpression'驗證器爲此和正則表達式爲逗號分隔驗證是'(([[A-ZA-Z0-9 _ \ - \。] +)@((\ [[0-9] {1,3 } \ [0-9] {1,3} \ [0-9] {1,3} \)|。。。(([A-ZA-Z0-9 \ - ] + \)+))( (\ s *; \ s * | \ s * $))* '請檢查[a-zA-Z] {2,4} | [0-9] {1,3})這個答案](https://stackoverflow.com/a/9809636/2534646)獲取更多信息 – Curiousdev
你的屬性需要實現'IClientValidatable',如果你需要寫腳本來將規則添加到'$ .validator'想要客戶端驗證。 –