我有一个类型为Datetime?
的属性,我想用FluentValidation验证。
这是属性:
public DateTime? StartContractDate { get; set; }
这是我的实际验证员,他的工作日期很好:
RuleFor(x => x.StartContractDate).Cascade(CascadeMode.StopOnFirstFailure)
.NotNull().WithMessage(localizationService.GetLocaleStringResourceByName("Contract.Create.Create_Identification.Validate.StartContractDate").ResourceValue)
.Must(StartContractDateValidation).WithMessage(localizationService.GetLocaleStringResourceByName("Contract.Create.Create_Identification.Validate.StartContractDateValidation").ResourceValue);
我尝试了在链接Validate DateTime with FluentValidator中看到的内容没有成功,我进入BeAValidDate
函数,但在导航器中我仍然有错误“值'XXX'对'StartContractDate无效'而不是我放入WithMessage(...)
的自定义消息。
如果您有任何建议?
答案 0 :(得分:0)
我找到了我的问题的答案,所以如果它可以帮助某人,我会分享它。
错误"值' XXX'对于' fieldName'无效在FluentValidation之前设置,我没有找到解决方案来处理它。所以我搜索了这条消息的设置位置,它位于一个名为" MvcLocalization.resx"的文件中。还有另一个文件" MvcLocalization.de.resx"所以我试着添加一个" fr"版本(这是我的目标,改变并使该消息可翻译)。
所以解决方案是添加" MvcLocalization.fr.resx"文件,添加相同的键与良好的翻译,它的工作非常好。