如果我在视图模型中有一个属性,如:
[DataType(DataType.DateTime)]
public DateTime? MyDate{ get; set; }
这样的验证规则:
public class YourDetailsViewModelValidator : AbstractValidator<YourDetailsViewModel>
{
public YourDetailsViewModelValidator()
{
RuleFor(x => x.MyDate)
.InclusiveBetween(startDate, endDate)
.WithMessage("error");
}
}
无论输入什么日期,为什么错误都会触发?
我确实看到类似的事情正在发生enter link description here,但答案最终被接受,所以我希望它可以正常工作。
答案 0 :(得分:0)
错误可以通过jquery.validate
插件日期格式和MVC帮助器格式的差异来解释。只需查看您的视图生成的html,然后使用
[DisplayFormat(DataFormatString="...")] // format string instead of dots
使data-val-min
和data-val-max
属性符合输入value
格式(当然,如果不是)。
如果值和验证属性格式相同,但验证仍然失败 - 请确保jquery.validate具有适当的格式。在这种情况下,您应该将ASP.NET MVC应用程序文化更改为符合jquery.validate
格式,反之亦然 - 更改jquery.validate
格式以符合应用程序。
在SO上提出的类似问题:
可用的.NET日期格式选项here。