Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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# 如何使用lambda表达式进行验证,以验证一小时是否为某个时间;“类型”;(必须是hh:00或hh:30)_C#_Asp.net_Asp.net Mvc_Asp.net Core_Fluentvalidation - Fatal编程技术网

C# 如何使用lambda表达式进行验证,以验证一小时是否为某个时间;“类型”;(必须是hh:00或hh:30)

C# 如何使用lambda表达式进行验证,以验证一小时是否为某个时间;“类型”;(必须是hh:00或hh:30),c#,asp.net,asp.net-mvc,asp.net-core,fluentvalidation,C#,Asp.net,Asp.net Mvc,Asp.net Core,Fluentvalidation,我必须创建一个具有StartDate、EndDate、userid等的事件。StartDate是Datetime,我必须进行此验证,事件的StartDate必须是hh:00或hh:30。 这就是我用于所有其他验证(up)的内容 试试这个: RuleFor(m => m.StartDate) .NotEmpty().WithMessage(x => Validation.EventMessages.EmptyStartDate) .GreaterThanOrEqualT

我必须创建一个具有StartDate、EndDate、userid等的事件。StartDate是Datetime,我必须进行此验证,事件的StartDate必须是hh:00或hh:30。 这就是我用于所有其他验证(up)的内容

试试这个:

RuleFor(m => m.StartDate)
    .NotEmpty().WithMessage(x => Validation.EventMessages.EmptyStartDate)
    .GreaterThanOrEqualTo(DateTime.UtcNow).WithMessage(x => Validation.EventMessages.StartDatePast).When(m => m.EndDate.HasValue)
    .LessThan(DateTime.UtcNow.AddMonths(1)).WithMessage(x => Validation.EventMessages.StartDateFuture).When(m => m.EndDate.HasValue)
    .LessThan(m => m.EndDate.Value).WithMessage(x => Validation.EventMessages.GreaterThan).When(m => m.EndDate.HasValue)
    .LessThan(m => DateTime.UtcNow.AddMinutes(15)).WithMessage(x => Validation.EventMessages.CancellationTimeSpanLess).When(m => m.EventStatus == (int)EventStatusEnum.cancelled)
    .Must(CanBook).WithMessage(x => Validation.EventMessages.Limit);
试试这个:

RuleFor(m => m.StartDate)
    .NotEmpty().WithMessage(x => Validation.EventMessages.EmptyStartDate)
    .GreaterThanOrEqualTo(DateTime.UtcNow).WithMessage(x => Validation.EventMessages.StartDatePast).When(m => m.EndDate.HasValue)
    .LessThan(DateTime.UtcNow.AddMonths(1)).WithMessage(x => Validation.EventMessages.StartDateFuture).When(m => m.EndDate.HasValue)
    .LessThan(m => m.EndDate.Value).WithMessage(x => Validation.EventMessages.GreaterThan).When(m => m.EndDate.HasValue)
    .LessThan(m => DateTime.UtcNow.AddMinutes(15)).WithMessage(x => Validation.EventMessages.CancellationTimeSpanLess).When(m => m.EventStatus == (int)EventStatusEnum.cancelled)
    .Must(CanBook).WithMessage(x => Validation.EventMessages.Limit);

最后,我们改变了处理这一问题的方式,但这起了作用。我把x.minute改成了x.Value.minute。谢谢你的帮助最后我们改变了处理这件事的方式,但这起了作用。我把x.minute改成了x.Value.minute。谢谢你的帮助