C# 如何在ASP.NET MVC中验证用户指定的正确日期?
有没有简单的方法来验证客户端(和服务器端)的日期 我的想法是为日、月和年设置3个输入字段。我正在使用anotated模型和AJAX验证脚本对数据进行客户端验证。我怎样才能在约会时做到这一点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并回退到没有日期选择器的版本 如果你真的想要
我可以设置像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关闭时也可用。