c# - Mensaje personalizado con colección de validación fluida
fluentvalidation (1)
public class AnswersModelValidator : AbstractValidator<AnswersModel>
{
RuleFor(customer => customer.Text)
.NotEmpty()
.WithMessage("This message references some other properties: Id: {0} Title: {1}",
answer => answer.Id,
answer => answer.Title
);
}
ACTUALIZACIÓN: sintaxis modificada en la versión más reciente de FluentValidation:
WithMessage(answer => $"This message references some other properties: Id: {answer.Id} Title: {answer.Title}"
Documentación de validación fluida: anulando el mensaje de error
Encontré esta información en 1 minuto :) Lea la documentación de esta biblioteca, porque hay muy poca información al respecto en la web.
Además, debes usar el validador de colección:
public class AnswersModelValidator : AbstractValidator<AnswersModel> {
public AnswersModelValidator() {
RuleFor(x => x.Answers).SetCollectionValidator(new AnswerValidator());
}
}
public class AnswersModel
{
public List<Answer> Answers{get;set;}
}
Estoy usando SetCollectionValidator para una colección genérica. Mi colección es una lista de:
public class Answer {
public string QuestionConst { get; set; }
public string QuestionName { get; set; }
public bool Required { get; set; }
public string Answer { get; set; }
}
Tengo la configuración de la validación y estoy trabajando para que cuando un elemento no es válido, el mensaje de error sea algo como: "''QuestionName'' no debe estar vacío". Me gustaría que el mensaje de error diga algo como "La primera pregunta ''no debe estar vacía". (donde La primera pregunta es el valor de QuestionName para uno de los elementos).
Supongo que mi pregunta es: ¿es posible usar el valor de una variable en el mensaje de error o en el nombre de la propiedad?