Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ValidationResult验证日期时间_C#_Silverlight_Validation_Xaml - Fatal编程技术网

C# 使用ValidationResult验证日期时间

C# 使用ValidationResult验证日期时间,c#,silverlight,validation,xaml,C#,Silverlight,Validation,Xaml,我正在尝试验证我的DateTime对象,尽管我似乎无法让它与ValidationResult一起工作。我可以为int和string做这个,但是为什么它对DateTime不起作用呢 [Required] [CustomValidation(typeof(DateValidator), "CrossValidateFirstDateWithSecondDate")] public DateTime ActiveOn { get; set; } [Required]

我正在尝试验证我的DateTime对象,尽管我似乎无法让它与ValidationResult一起工作。我可以为int和string做这个,但是为什么它对DateTime不起作用呢

    [Required]
    [CustomValidation(typeof(DateValidator), "CrossValidateFirstDateWithSecondDate")]
    public DateTime ActiveOn { get; set; }

    [Required]
    [CustomValidation(typeof(DateValidator), "CrossValidateSecondDateWithFirstDate")]
    public DateTime? ExpiresOn { get; set; }
编辑:它在我的DateValidator中没有达到我的断点,所以没有发生任何事情:(

日期验证程序

        using System.ComponentModel.DataAnnotations;
        using System;

        namespace Fsc.Feenics.Clients.Silverlight2.Web.Models.Shared
        {
            public class DateValidator
            {
                public static ValidationResult CrossValidateFirstDateWithSecondDate(DateTime date, ValidationContext context)
                {
                    var cardAssignmentInfo = context.ObjectInstance as CardAssignmentInfo;
                    if (cardAssignmentInfo.ExpiresOn.HasValue == false) return ValidationResult.Success;
                    if (cardAssignmentInfo == null) return ValidationResult.Success;
                    return ValidateFirstLessThanLast(date, cardAssignmentInfo.ExpiresOn.Value);
                }

                public static ValidationResult CrossValidateSecondDateWithFirstDate(DateTime? date, ValidationContext context)
                {
                    var cardAssignmentInfo = context.ObjectInstance as CardAssignmentInfo;
                    if (date.HasValue == false) return ValidationResult.Success;
                    if (cardAssignmentInfo == null) return ValidationResult.Success;
                    return ValidateFirstLessThanLast(cardAssignmentInfo.ActiveOn, date.Value);
                }

                private static ValidationResult ValidateFirstLessThanLast(DateTime firstDate, DateTime? secondDate)
                {
                    return firstDate <= secondDate.Value ? ValidationResult.Success : new ValidationResult("First number in range must be less than or equal to last number in range", new string[] { "ActiveOn", "ExpiresOn" });
                }
            }
        }
使用System.ComponentModel.DataAnnotations;
使用制度;
命名空间Fsc.Feenics.Clients.Silverlight2.Web.Models.Shared
{
公共类日期验证器
{
公共静态验证结果CrossValidateFirstDateWithSecondDate(日期时间日期,ValidationContext上下文)
{
var cardsignmentinfo=context.ObjectInstance作为cardsignmentinfo;
if(cardsignmentinfo.ExpiresOn.HasValue==false)返回ValidationResult.Success;
if(cardAssignmentInfo==null)返回ValidationResult.Success;
返回ValidateFirstLessThanLast(日期,cardAssignmentInfo.ExpiresOn.Value);
}
公共静态验证结果CrossValidateSecondDateWithFirstDate(日期时间?日期,ValidationContext上下文)
{
var cardsignmentinfo=context.ObjectInstance作为cardsignmentinfo;
if(date.HasValue==false)返回ValidationResult.Success;
if(cardAssignmentInfo==null)返回ValidationResult.Success;
返回ValidateFirstLessThanLast(cardAssignmentInfo.ActiveOn,date.Value);
}
私有静态验证结果validateFirstAnlast(DateTime firstDate、DateTime?secondDate)
{

return firstDate您能否提供一些详细信息。验证会发生什么情况?如果ExpiresOn不可为null,它是否会到达断点?