Asp.net mvc 范围验证属性返回有效日期的假警报

Asp.net mvc 范围验证属性返回有效日期的假警报,asp.net-mvc,validation,data-annotations,date-range,Asp.net Mvc,Validation,Data Annotations,Date Range,我的模型有两个日期属性。 我想限制它们的日期范围,所以我放置了一个数据注释属性来验证它 [Display(ResourceType = typeof(FaultManagementStrings), Name = "FaultOpenDate")] [DataType(DataType.DateTime)] [Range(typeof(DateTime), "1900-01-01", "2500-01-01", ErrorMessage = "In

我的模型有两个日期属性。 我想限制它们的日期范围,所以我放置了一个数据注释属性来验证它

        [Display(ResourceType = typeof(FaultManagementStrings), Name = "FaultOpenDate")]
        [DataType(DataType.DateTime)]
        [Range(typeof(DateTime), "1900-01-01", "2500-01-01", ErrorMessage = "Invalid Date")]
        public DateTime FaultOpenDateTime { get; set; }

        [Display(ResourceType = typeof(FaultManagementStrings), Name = "FaultCloseDate")]
        [DataType(DataType.DateTime)]
        [Range(typeof(DateTime), "1900-01-01", "2500-01-01", ErrorMessage = "Invalid Date")]
        public DateTime FaultCloseDateTime { get; set; }
但是客户端验证对于任何有效日期都显示无效。。。
我在这里做错了什么?

ASP.NET MVC和jQuery Validate预期的默认日期格式为MM/DD/YYYY。如果要使用特定区域性的格式:


将ASP.NET MVC和jQuery Validate预期的默认日期格式添加到您的中是MM/DD/YYYY。如果要使用特定区域性的格式:


添加到您的中时,您提供了什么格式的日期不变或您所在的国家/地区?@SławomirRosiek格式为DD/MM/yyyy,我使用jQuery日期选择器选择和格式化它。您提供了什么格式的日期不变或您所在的国家/地区?@SławomirRosiek格式为DD/MM/YYY,我使用jQuery日期选择器选择和格式化它格式化。我有两种文化的双语言支持。如何根据当前线程文化使上述解决方案动态化?忽略第一步,在第二步中只从CultureInfo.CurrentCulture.NameSorry获取文化代码,但它不理解全球化插件与验证格式有什么关系。。这是告诉jquery验证器我使用不同格式的唯一方法吗?关于第三步,我已经使用了datepicker的格式将其设置为DD/MM/yyyy。在第二步中,我只是用使用全球化插件的新版本覆盖现有的日期验证器。您可以使用自己的逻辑来检查传递的值是否为正确的日期。新日期值的日期验证程序检查结果的默认实现抱歉,但这对我不起作用。。我将第二行的代码与jQuery全球化ParseDate方法放在一起,并放置了一个调试器,但它从未触发。。。还有其他想法吗?我有两种文化的双语言支持,如何根据当前线程文化使上述解决方案动态化?忽略第一步,在第二步中只从CultureInfo.CurrentCulture.NameSorry获取文化代码,但它不理解全球化插件与验证有什么关系总体安排这是告诉jquery验证器我使用不同格式的唯一方法吗?关于第三步,我已经使用了datepicker的格式将其设置为DD/MM/yyyy。在第二步中,我只是用使用全球化插件的新版本覆盖现有的日期验证器。您可以使用自己的逻辑来检查传递的值是否为正确的日期。新日期值的日期验证程序检查结果的默认实现抱歉,但这对我不起作用。。我将第二行的代码与jQuery全球化ParseDate方法放在一起,并放置了一个调试器,但它从未触发。。。还有其他想法吗?
Globalize.culture('pl-PL');
jQuery.validator.methods['date'] = function (value, element) {
    return this.optional(element) || Globalize.parseDate(value);
};
jQuery.validator.methods['range'] = function (value, element, param) {
    var parsedValue = Globalize.parseDate(value) || Globalize.parseFloat(value),
        parsedParam1 = Globalize.parseDate(param[0]) || Globalize.parseFloat(param[0]),
        parsedParam2 = Globalize.parseDate(param[1]) || Globalize.parseFloat(param[1]);
    return this.optional(element) || (parsedValue >= parsedParam1 && parsedValue <= parsedParam2);
};