C# 如何使用lambda表达式进行验证,以验证一小时是否为某个时间;“类型”;(必须是hh:00或hh:30)
我必须创建一个具有StartDate、EndDate、userid等的事件。StartDate是Datetime,我必须进行此验证,事件的StartDate必须是hh:00或hh:30。 这就是我用于所有其他验证(up)的内容 试试这个: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
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。谢谢你的帮助