mvc 개발을 처음 사용합니다. validationResult를 사용하여 유효성 검사가있는 이메일 텍스트 상자가 있습니다. 여러 이메일을 하나씩 추가해야합니다. 따라서 이메일 형식이 올바른지 확인해야합니다. 이것은 유효성 검사를위한 코드입니다.
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
{
var results = new List<ValidationResult>();
var Emailvaild = new Regex(@"^([a-za-z0-9_\-\.]+)@((\[[0-9]{1,3}" + @"\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-za-z0-9\-]+\" + @".)+))([a-za-z]{2,4}|[0-9]{1,3})(\]?)$");
foreach (VEmail em in Emails)
{
if (!Emailvaild.IsMatch(em.Email))
{
results.Add(new ValidationResult(em.Email + " is an invaild", new List<string> { string.Empty }));
}
}
return results;
}
이메일이 확인 될 때마다 유효하지 않은 경우 확인 메시지가 표시됩니다. 그러나 매번 메시지가 서로 아래에 표시됩니다. 예를 들어 이메일이 20 개이고 각 이메일이 올바른 형식이 아닌 경우입니다. 따라서 아래에 20 개의 메시지가 표시됩니다. 쉼표를 사용하여 이메일에 참여하고 싶습니다.
현재 코드는 ValidationResult
루프 반복 내의 각 잘못된 이메일에 대해 새 개체를 추가하고 있습니다. 이를 foreach 루프 밖으로 옮기고 루프 내의 다른 컬렉션에 잘못된 이메일을 추가하고 string.join
메서드를 사용하여 해당 컬렉션 (잘못된 이메일)의 항목을 쉼표로 구분 한 목록 인 문자열을 만들고 단일 ValidationResult 개체에 사용할 수 있습니다.
var results = new List<ValidationResult>();
var wrongEmails = new List<string>();
foreach (VEmail em in Emails)
{
if (!Emailvaild.IsMatch(em.Email))
{
wrongEmails.Add(em.Email);
}
}
if(wrongEmails.Any())
{
results.Add(new ValidationResult("Below emails are not good!"
+ string.Join(",",wrongEmails),
new List<string> { string.Empty }));
}
return results;
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다