c# - 如何使用 FluentValidation 验证我的日期时间?字段有好的格式吗?

标签 c# .net asp.net-mvc validation fluentvalidation

我有一个 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(...).

如果您有什么建议?

最佳答案

我找到了我的问题的答案,所以如果它可以帮助别人,我会分享它。

错误“The value 'XXX' is not valid for 'fieldName' is not valid before FluentValidation is seted before FluentValidation and I didn't find a solution to handle it inside. 所以我搜索了设置此消息的位置,它在文件中名为“MvcLocalization.resx”。还有另一个文件“MvcLocalization.de.resx”,所以我尝试添加一个“fr”版本(我的目标是更改并使该消息可翻译)。

所以解决方案是添加“MvcLocalization.fr.resx”文件,添加具有良好翻译的相同键,效果非常好。

关于c# - 如何使用 FluentValidation 验证我的日期时间?字段有好的格式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49381881/

相关文章:

.net - 如何从.NET检索AD用户的创建日期?

c# - 我是否会为 Task.WhenAll() 创建死锁

c# - 使用多个线程创建对象时变慢

jquery - 在MVC中添加脚本

asp.net-mvc - 数据绑定(bind) : 'System.Web.Mvc.SelectListItem' does not contain a property with the name 'CategoryTypeID'

c# - "Parameter is not valid. At System.Drawing.Bitmap..Ctor (Stream stream)."

c# - WCF 不在消息中发送类型提示

c# - 使用 C# 通过 webservice 发送大量数据

c# - 无法隐藏继承的成员编译器错误

c# - 如何在 ASP.NET MVC 5 中使用三个不相关的 View