asp.net-mvc – mvc4数据注释比较两个日期

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – mvc4数据注释比较两个日期前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的模型中有这两个字段:
[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 ValidationMVC 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" });
       }
    }
}

猜你在找的asp.Net相关文章