需要在MVC中使用表单验证从服务器端验证DateTime

我有一个客户端的验证,限制用户只在一定范围内输入日期,这是从现在起20年前。这工作得很好。但问题是,当用户将浏览器时间改回1年时,浏览器允许输入大于20年的日期。为此,我们使用了MVC。我们有4个选项卡,在第二个表单中进行验证,但是当我们将所有表单保存在表单中时,服务器端调用就会发生,并且我们在最后一个选项卡中调用服务器端。我如何才能做到这一点?

我已经在服务器端添加了一些验证,它限制用户来自服务器端,但这发生在最后一个选项卡中,当用户单击提交时。我想要的是,当用户单击下一步按钮或至少在用户输入第二个选项卡中的日期值后立即,我希望这个逻辑发生。我尝试的代码如下:

var enrolledVal = Convert.ToDateTime(model.enrolledValue);
var a = (today.Year * 100 + today.Month) * 100 + today.Day;
var b = (enrolledVal.Year * 100 + enrolledVal.Month) * 100 + enrolledVal.Day;
var enrolledYears = (a - b) / 10000;
if (enrolledYears > 20)
{
var error = new JsonErrorModel { ErrorCode = -1, ErrorMessage = "Enrolled Date Exceeded 20 years"};
return Json(error);
}

转载请注明出处:http://www.ahddzj.com/article/20230526/1451622.html