我的模型中有这两个字段:
[Required(ErrorMessage="The start date is required")] [Display(Name="Start Date")] [DisplayFormat(DataFormatString = "{0,d}")] public DateTime startDate { get; set; } [Required(ErrorMessage="The end date is required")] [Display(Name="End Date")] [DisplayFormat(DataFormatString = "{0,d}")] public DateTime endDate{ get; set; }
我要求endDate必须大于startDate。我尝试使用[Compare(“startDate”)],但这只适用于相等的操作。
对于“大于”操作应该使用什么?
解决方法
看看
Fluent Validation或
MVC Foolproof Validation:那些可以帮助你很多。
以Foolproof为例,有一个[GreaterThan(“StartDate”)]注释比你可以在你的date属性上使用。
或者如果您不想使用其他库,则可以通过在模型上实现IValidatableObject来实现自己的自定义验证:
public class ViewModel: IValidatableObject { [Required] public DateTime StartDate { get; set; } [Required] public DateTime EndDate { get; set; } public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (EndDate < StartDate) { yield return new ValidationResult(errorMessage: "EndDate must be greater than StartDate",memberNames: new[] { "EndDate" }); } } }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。