C# 如何在ASP.NET MVC中验证用户指定的正确日期?

C# 如何在ASP.NET MVC中验证用户指定的正确日期?,c#,asp.net,asp.net-mvc,asp.net-mvc-validation,C#,Asp.net,Asp.net Mvc,Asp.net Mvc Validation,有没有简单的方法来验证客户端(和服务器端)的日期 我的想法是为日、月和年设置3个输入字段。我正在使用anotated模型和AJAX验证脚本对数据进行客户端验证。我怎样才能在约会时做到这一点 我可以设置像day必须从范围内,但仍然,如果月份是二月,那么值31是无效的 和。。。。我希望能帮助你。最好的我同意@bAN-最方便用户的方法是使用日期选择器。禁用javascript的用户必须手动将日期写入文本框。在这种情况下,您还可以检测禁用的javascript并回退到没有日期选择器的版本 如果你真的想要

有没有简单的方法来验证客户端(和服务器端)的日期

我的想法是为日、月和年设置3个输入字段。我正在使用anotated模型和AJAX验证脚本对数据进行客户端验证。我怎样才能在约会时做到这一点


我可以设置像day必须从范围内,但仍然,如果月份是二月,那么值31是无效的

和。。。。我希望能帮助你。最好的

我同意@bAN-最方便用户的方法是使用日期选择器。禁用javascript的用户必须手动将日期写入文本框。在这种情况下,您还可以检测禁用的javascript并回退到没有日期选择器的版本

如果你真的想要3个输入字段,你有几个选择。您的模型
int-day需要3个属性;整月;国际年。当您从客户端接收数据时,您必须通过尝试创建
DateTime
对象手动执行验证。如果指定的格式不正确,它将引发异常:

try
{
    var date = new DateTime(model.Year, model.Month, model.Day);
    ...
}
catch(ArgumentOutOfRangeException exception)
{
    ModelState.AddModelError(...);
}

作为一个更愉快的用户体验,您可以有3个下拉列表。您可以根据选择的月份更改天数和/或在客户端运行验证。

A似乎是一个很好的解决方案。

为什么不使用javascript日期选择器?就像jquery的建议一样?这似乎是一个合理的建议。我花了最后几个小时寻找一些可以满足我所有需要的东西(jQuery-one不是这种情况)…你需要什么?@bAN jQuery很好,但我更喜欢由3个字段组成的选择器:日、月和年。有时,用户不喜欢为UI下拉列表而烦恼,而是编写它。在这种情况下,格式化对用户来说永远不清楚-它是由
/
或空格分隔的吗?甚至是“\”?3个带标签的字段清晰易懂,因此即使在javascript关闭时也可用。