Nig*_*ale 6 asp.net-mvc datetime asp.net-core
有没有办法在视图模型中设置 DateTime 的范围,使输入的最大可能日期为当前日期和时间(UTC),最小日期可能为一年前?
就像是[Range(typeof(DateTime), "06/06/2020 23:43", "Utc.Now")]?
先感谢您。
如果您想限制用户输入,您可以在视图上进行以下设置。
<input asp-for="SelectedDate" max="@DateTime.Now.ToString("yyyy-MM-ddThh:mm")" min="@DateTime.Now.AddYears(-1).ToString("yyyy-MM-ddThh:mm")" />
Run Code Online (Sandbox Code Playgroud)
如果您想在服务器端验证日期时间范围,您可以定义一个自定义属性来验证您的属性值。
public class ValidateDate: ValidationAttribute
{
protected override ValidationResult IsValid
(object date, ValidationContext validationContext)
{
return (date<= DateTime.Now && date >= DateTime.Now.AddYears(-1))
? ValidationResult.Success
: new ValidationResult("Invalid date range");
}
}
Run Code Online (Sandbox Code Playgroud)
你的财产应该用属性来装饰
[ValidateDate]
public DateTime MyDate{get; set;}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7460 次 |
| 最近记录: |