gpt4 book ai didi

c# - 如何为 DateTime 验证添加范围

转载 作者:行者123 更新时间:2023-12-05 00:56:16 27 4
gpt4 key购买 nike

我的 blazor 服务器端组件有一个简单的输入模型。我想对 DateTime 属性使用内置验证。

[Required]
public DateTime Date { get; set; }

我怎样才能只接受 DateTime 值 >= DateTime.Now?

最佳答案

您必须创建一个自定义验证属性。但是做的好,不像上面的答案那样……

using System;
using System.ComponentModel.DataAnnotations;

namespace YourAppNamespace
{
public class FromNowAttribute : ValidationAttribute
{
public FromNowAttribute() {}

public string GetErrorMessage() => "Date must be past now";

protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var date = (DateTime)value;

if (DateTime.Compare(date, DateTime.Now) < 0) return new ValidationResult(GetErrorMessage());
else return ValidationResult.Success;
}
}
}

然后这样使用:

[Required]
[FromNow]
public DateTime Date { get; set; }

关于c# - 如何为 DateTime 验证添加范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62549258/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com