FluentValidation изменяет сообщение об ошибке в функции MustC#

Место общения программистов C#
Ответить
Anonymous
 FluentValidation изменяет сообщение об ошибке в функции Must

Сообщение Anonymous »

Внутри класса, отвечающего за проверку, у меня есть простое правило:

Код: Выделить всё

RuleFor(u => u.Id)
.Cascade(CascadeMode.StopOnFirstFailure)
.NotEmpty().WithMessage("Id is required")
.Must(ValidateId);
а ниже — моя функция ValidateId:

Код: Выделить всё

private bool ValidateId(CreateAccountBindingModel model, string id, PropertyValidatorContext context)
{
if (id=="test")
{
context.Rule.CurrentValidator.ErrorCodeSource = new StaticStringSource("You are testing");
return false;
}

var idValid = IdValidator.IsValid(id);
if (!idValid)
{
context.Rule.CurrentValidator.ErrorCodeSource = new StaticStringSource("Id is invalid");
return false;
}
return true;
}
Если я запущу свой валидатор, я получу ошибку по умолчанию, а не мои пользовательские ошибки, которые я указываю внутри своей функции.

Я пробовал установить они используют:

Код: Выделить всё

context.Rule.CurrentValidator.ErrorCodeSource = new StaticStringSource("Id is invalid");
но безуспешно.

Как определить сообщение об ошибке внутри функции проверки?

Подробнее здесь: https://stackoverflow.com/questions/384 ... t-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»