Asp.net mvc 3 ASP.NET MVC-两个文本字段上的一个验证程序

Asp.net mvc 3 ASP.NET MVC-两个文本字段上的一个验证程序,asp.net-mvc-3,Asp.net Mvc 3,我有一个有趣的客户要求 我有一个控件需要这样显示: Date of xxx [ mm ][ yy ] 标签上有两个文本字段——一个数字表示月份,另一个数字表示年份 虽然有两个文本字段,但我们希望在验证两个字段后运行验证 一个页面上还有许多这样的控件。如何将其打包,以便我可以调用: @Laberfor(x => x.Datexxx) @EditorFor(x => x.Datexxx) 提前感谢如果控件是强类型的,则可以实现IValidatableObject及其验证方法

我有一个有趣的客户要求

我有一个控件需要这样显示:

Date of xxx     [ mm ][ yy ]
标签上有两个文本字段——一个数字表示月份,另一个数字表示年份

虽然有两个文本字段,但我们希望在验证两个字段后运行验证

一个页面上还有许多这样的控件。如何将其打包,以便我可以调用:

@Laberfor(x => x.Datexxx)
@EditorFor(x => x.Datexxx)

提前感谢

如果控件是强类型的,则可以实现IValidatableObject及其验证方法

假设您的模型如下所示:

public class CombinedDateViewModel : IValidatableObject
{
    [Required]
    public int month { get; set; }
    [Required]
    public int year { get; set; }

    public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
    {        
        if(month > 12 || month < 1)
            yield return new ValidationResult("Month is out of range");
        if(year < 0 || year > 2020)
            yield return new ValidationResult("Year is out of range");
    }
}
生成的验证结果将显示在验证摘要中