我创建了一个带有文化ar-SA的带有dd / MM / yyyy格式的Datepicker页面,但是当我尝试设置日期时,它始终返回无效日期 这是datepicker
@Html.Kendo().DatePickerFor(model => model.ValidStartDate).HtmlAttributes(new { id = "ValidStartDate_" + Model.ItemCode }).Culture("ar-SA").Format("dd/MM/yyyy").ParseFormats(new string[] {"dd/MM/yyyy"})
另一个问题是验证消息,它始终返回默认消息,而不是我在视图模型中设置的自定义消息
[Date( ErrorMessageResourceType = typeof(Global), ErrorMessageResourceName = "ValidStartDate_InvalidDate")]
public Nullable<System.DateTime> ValidStartDateH { get; set; }
答案 0 :(得分:2)
型号:
[DataType(DataType.Date)]
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
[Required(ErrorMessage = "Pick a date from Kendo Date Picker")]
public DateTime mydate{ get; set; }
查看:
@(Html.Kendo().DatePickerFor(m=>m.mydate)
.Name("MyDate")
.Format("dd/MM/yyyy")
.ParseFormats(new string[] {"dd/MM/yyyy"})
添加脚本document.ready function
$(document).ready(function () {
kendo.culture("en-GB");
$.validator.methods['date'] = function (value, element) {
var check = false;
var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;
if (re.test(value)) {
var adata = value.split('/');
var dd = parseInt(adata[0], 10);
var mm = parseInt(adata[1], 10);
var yyyy = parseInt(adata[2], 10);
var xdata = new Date(yyyy, (mm - 1), dd);
if ((xdata.getFullYear() == yyyy) && (xdata.getMonth() == (mm - 1)) &&
(xdata.getDate() == dd)) {
check = true;
}
else {
alert(value);
check = false;
}
} else
check = false;
return this.optional(element) || check;
}
});
答案 1 :(得分:0)
我通过在加载脚本中设置文化来解决日期格式错误的消息
kendo.culture("ar-SA");
但我还有第二个问题,即自定义文本消息仍未从数据注释消息返回
答案 2 :(得分:0)
删除[Date(ErrorMessageResourceType = typeof(Global),ErrorMessageResourceName =“ValidStartDate_InvalidDate”)] 并使用这个正则表达式。
[数据类型(DataType.Date)] [正则表达式(@“^(((0 [1-9] | [12] \ d | 3 [01])/(0 [13578] | 1 [02])/((19 | [2-9] \ d)\ d {2}))|((0 [1-9] | [12] \ d | 30)/(0 [13456789] | 1 [012])/((19 | [2-9] \ d)\ d {2}))|((0 [1-9] | 1 \ d | 2 [0-8])/ 02 /((19 | [2-9] \ d)\ d {2} ))|(29/02 /((1 [6-9] | [2-9] \ d)(0 [48] | [2468] [048] | [13579] [26])|((16 | [2468] [048] | [3579] [26])00))))$“,ErrorMessageResourceType = typeof(Object),ErrorMessageResourceName =”ValidStartDate_InvalidDate“)
公共日期时间? releavingDate {get;组; }