大于接受空日期的数据注释中的日期验证

Greater than date validation in data annotation that accepts null date

我在这里看到了一个答案 Greater Than or Equal To Today Date validation annotation in MVC3 并试图使用我的 .Net Core 3.1 应用程序中建议的远程选项。我在我的操作中设置了一个断点,但它从来没有击中它,只是一遍又一遍地抛出验证,而不管输入的日期(或空白)如何。这是我尝试过的:

作为我的数据模型的注释:

[Remote("ValidateDateEqualOrGreater", "AccountViewer", HttpMethod="POST", ErrorMessage = "Date cannot be prior to today's date")]
public DateTimeOffset? PostDate {get; set; }

在我的控制器中:

[HttpPost]
public JsonResult ValidateDateEqualOrGreater(DateTimeOffset Date)
{
    if (Date == null || Date >= DateTimeOffset.UtcNow.Date)
    {
        return Json(true);
    }
    return Json(false);
}

似乎根本没有调用代码,因为我没有遇到其中的任何断点。您还需要做什么才能使 Remote() 注释正常工作?

我想您忘记了 RemoteAttribute 定义中的 HttpMethod ="POST"。 ;)

我脸上有大蛋。我的断点设置不正确。该函数失败是因为空白日期显示为“01/01/0001”而不是 null,我必须考虑到这一点。它现在正在工作。很抱歉火警并感谢您提供的所有帮助。

工作函数:

[HttpPost]
        public JsonResult ValidateDateEqualOrGreater(DateTimeOffset Dt)
        {
            DateTime nulltime = new DateTime(0001, 1, 1, 0, 0, 0);

            var nulldt = new DateTimeOffset(nulltime, new TimeSpan(0, 0, 0));
            if (Dt == null || Dt == nulldt || Dt >= DateTimeOffset.UtcNow.Date)
            {
                return Json(true);
            }
            return Json(false);
        }