【发布时间】:2017-02-26 00:52:26
【问题描述】:
我已经添加了不显眼的.. 等所有作品,除非我的第二个日期字段上有 GreaterThan
开始日期:2017/02/25 12:00 AM 结束日期:2017/02/25 01:03 PM
似乎认为结束日期不是更大,我假设它与正确的日期进行字符串比较,因为这是一个有效范围,因为结束日期大于开始日期,但如果我们正在进行字符串比较那么结束日期不会更大
这是我的代码
[Required]
[DataType(DataType.DateTime)]
[Display(ResourceType = typeof(DisplayResources), Name = "StartDateTime")]
public DateTime StartDateTime { get; set; }
[Required]
[DataType(DataType.DateTime)]
[Display(ResourceType = typeof(DisplayResources), Name = "EndDateTime")]
[GreaterThan("StartDateTime")]
public DateTime EndDateTime { get; set; }
`
更新 这是我使用的组件https://eonasdan.github.io/bootstrap-datetimepicker/,它使用 moment.js 作为日期格式
【问题讨论】:
-
我怀疑这里的问题是您的日期不是
jquery.validate.js客户端验证的有效格式,它使用MM/dd/yyyy或 ISO 格式 - 尝试分别输入2017-02-25 12:00 AM和2017-02-25 01:03 PM(这将是有效的),然后说2016-02-25 01:03 PM作为结束日期,这将给出客户端错误消息 -
我正在使用的组件使用momentjs.commomentjs 作为其约会格式,我似乎无法找到适合 jquery 日期的组件
-
刚刚检查了万无一失的脚本,即使我上面提到的格式也不起作用。问题是
mvcfoolproof.unobtrusive.js文件中的var isDate = function (input) { ..函数 - 正则表达式失败,因此基于string进行比较,而不是date -
您需要使用通过正则表达式的格式 - 例如
02/25/2017 12:00 AM和02/25/2017 01:03 PM -
momentjs 似乎不支持格式:"MM/DD/YYYY hh:mm a"
标签: asp.net-mvc validation foolproof-validation