繁体   English   中英

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

[英]Need to validate the DateTime from server side using form validation in MVC

我有一个客户端验证,它限制用户仅在距现在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);
}

我认为这可能会有所帮助

获取注册日期的年份:

var enrolledVal = Convert.ToDateTime(model.enrolledValue).Year;

获取当前年份

var current = DateTime.Now.Year;

找不同

var result = enrolledVal - current;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM