【发布时间】:2016-05-19 11:50:38
【问题描述】:
我想根据枚举类型为验证消息添加样式。
FluentValidation 提供了使用WithState 方法为消息添加自定义状态的可能性。根据使用的枚举,它会在 HTML 中为该消息添加一个类,因此稍后我可以为其添加样式。
模型验证器类:
public class SampleModelValidator : AbstractValidator<SampleModelValidator>
{
public SampleModelValidator()
{
RuleFor(o => o.Age)).NotEmpty()
// Using custom state here
.WithState(o => MsgTypeEnum.WARNING)
.WithMessage("Warning: This field is optional, but better fill it!");
}
}
控制器动作方法:
[HttpPost]
public ActionResult Submit(SampleModel model)
{
ValidationResult results = this.validator.Validate(model);
int warningCount = results.Errors
.Where(o => o.CustomState?.ToString() == MsgTypeEnum.WARNING.ToString())
.Count();
...
}
我注意到 ASP.NET MVC 默认使用 unobtrusive.js 并将 .field-validation-error 类添加到每个错误消息中。所以我想需要以某种方式覆盖该逻辑。
如何根据提供的枚举类型为验证消息添加样式?
【问题讨论】:
标签: c# asp.net-mvc unobtrusive-validation fluentvalidation