Mar*_*ein 4 c# datetime asp.net-core blazor-server-side
我的 blazor 服务器端组件有一个简单的输入模型。我想对 DateTime 属性使用内置验证。
[Required]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
我如何才能只接受 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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后这样使用它:
[Required]
[FromNow]
public DateTime Date { get; set; }
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6017 次 |
最近记录: |