我的 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/