【发布时间】:2015-10-08 16:25:51
【问题描述】:
我正在使用流利的验证和资源文件本地化一个站点,并且一切正常,除了当我尝试使用验证 "When()" 条件设置自定义错误时。
在下面的例子中:
public class InstructionValidator : AbstractValidator<InstructionModel>
{
public InstructionValidator()
{
RuleFor(x => x.Name)
.Length(0, 50)
.WithMessage(Resources.InvalidError);
RuleFor(x => x.Revision)
.NotNull()
.InclusiveBetween(1, int.MaxValue)
.WithMessage(Resources.InvalidError);
RuleFor(x => x.RevisionDate)
.NotNull()
.When(x => x.Revision > 1)
.WithMessage(Resources.RevisionDateRequiredError);
}
}
前两条规则(用于名称和版本)运行良好,可根据用户选择的文化显示英语或西班牙语消息。
但是,带有"when" 条件的第三条规则将始终显示英文消息。
我检查了网站上使用的所有其他规则,它是一致的 - 每个人都根据文化集显示英语或西班牙语,除非使用 "when" 条件,那么它总是英语。
也许这与"when" 作为服务器与客户端检查有关?我确实尝试过使用"WithLocalizedMessage()" 而不是"WithMessage()",并设置ValidatorOptions.ResourceProviderType,但可能仍然无法正常工作。
【问题讨论】:
标签: asp.net-mvc localization fluentvalidation