大于接受空日期的数据注释中的日期验证
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);
}
我在这里看到了一个答案 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);
}