Я написал регулярное выражение, которое работает, и я возвращаю сообщение ErrorMessage для просмотра пользователем.В моем случае я проверяю массив строк (электронных писем), и я хочу, чтобы пользователь знал, какое поле не удалось, а не просто общее сообщение.Есть ли способ вернуть строку, которая потерпела неудачу?
Я мог бы написать свою собственную систему обработки регулярных выражений, которая бы перебирала строки и возвращала те, которые не соответствовали регулярному выражению.Хотя это немного не так, поскольку .net дает мне возможность выполнять регулярные выражения в моих моделях.
Возможно, я ошибся в функциональности регулярного выражения модели, если это не удастся.это терпит неудачу.И я могу просто знать, какая модель не удалась, а не какой конкретный объект.
Я просмотрел документацию по: https://docs.microsoft.com/en-us/dotnet/api/system.componentmodel.dataannotations.regularexpressionattribute?view=netframework-4.7.2
Однако я не могу найти никакой опции для возврата объекта.Но, возможно, упустил это из виду.
[Display(Name = "Admin Emails")]
[RegularExpression(@"[a-z0-9!#$%&' * +/=?^ _`{|}~-]+(?:\.[a-z0-
9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-
9](?:[a-z0-9-]*[a-z0-9])?",
ErrorMessage = "Admin needs a valid email")]
public List<string> AdminEmails { get; set; }
и мой контроллер просто проверяет модель
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
, и я хочу, чтобы сообщение об ошибке возвращало что-то вроде "admin @ admin должно бытьдействительный адрес электронной почты "