C# 限制日期时间选择器的范围

C# 限制日期时间选择器的范围,c#,asp.net-core,model-view-controller,crud,datetimepicker,C#,Asp.net Core,Model View Controller,Crud,Datetimepicker,我正在使用ASP.NET CORE MVC和EF CORE 下面的代码允许我在日期时间选择器中选择日期时间。但是,我想这样做,用户将无法选择任何日期时间5天前和3小时前的当前日期时间 假设我找不到DateTimePicker的JQuery代码,如何限制日期时间 视图: 控制器: public IActionResult CreateTest() { return View(); } [HttpPost] [ValidateAntiForgeryToken] public async T

我正在使用ASP.NET CORE MVC和EF CORE

下面的代码允许我在日期时间选择器中选择日期时间。但是,我想这样做,用户将无法选择任何日期时间5天前和3小时前的当前日期时间

假设我找不到DateTimePicker的JQuery代码,如何限制日期时间

视图:

控制器:

public IActionResult CreateTest()
{
    return View();
}

[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> CreateTest([Bind("ID,DateTime")] TestModel testModel)
{
    if (ModelState.IsValid)
    {
        testModel.ID = Guid.NewGuid();
        _context.Add(testModel);
        await _context.SaveChangesAsync();
        return RedirectToAction(nameof(Index));
    }
    return View(testModel);
}
public IActionResult CreateTest()
{
返回视图();
}
[HttpPost]
[ValidateAntiForgeryToken]
公共异步任务CreateTest([Bind(“ID,DateTime”)]TestModel TestModel)
{
if(ModelState.IsValid)
{
testModel.ID=Guid.NewGuid();
_Add(testModel);
wait_context.SaveChangesAsync();
返回重定向到操作(名称(索引));
}
返回视图(testModel);
}

您可以构建自定义的
验证属性来设置日期范围

[Required(ErrorMessage = "Please Enter The Date/Time ..")]
[Display(Name = "Date/Time")] 
[ValidateDateRange]
public DateTime DateTime { get; set; }
以下是
validatedTerange
的代码

public class ValidateDateRange : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        DateTime dt = (DateTime)value;

        if (dt <= DateTime.Now.AddDays(-5).AddHours(-3))
        {
            return ValidationResult.Success;
        }
        else
        {
            return new ValidationResult("Date is not in given range.");
        }
    }
}
public类ValidateDateRange:ValidationAttribute
{
受保护的重写ValidationResult有效(对象值,ValidationContext ValidationContext)
{
DateTime dt=(DateTime)值;

如果(dt hi,如果我想使用户无法选择当前日期时间之后5天和之前3小时的日期时间,我是否将代码更改为“dt使用该代码,我可以限制用户在当前日期时间后5天内选择任何日期时间。但是,我仍然可以选择当前日期时间之前的任何日期时间。我应该更改什么?在该If条件下,没有
之前的
限制“dt您对
之前的限制有什么建议吗?
dt=DateTime。现在。AddDays(-5)
表示当前日期时间之后5天和之前5天的范围。
[Required(ErrorMessage = "Please Enter The Date/Time ..")]
[Display(Name = "Date/Time")] 
[ValidateDateRange]
public DateTime DateTime { get; set; }
public class ValidateDateRange : ValidationAttribute
{
    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        DateTime dt = (DateTime)value;

        if (dt <= DateTime.Now.AddDays(-5).AddHours(-3))
        {
            return ValidationResult.Success;
        }
        else
        {
            return new ValidationResult("Date is not in given range.");
        }
    }
}