kendoValidator() 在使用 DatePicker 时导致“字段 xxx 必须是日期”错误

Jac*_*ack 3 asp.net-mvc datetimepicker kendo-ui kendo-asp.net-mvc kendo-validator

我的 MVC5 应用程序选择“dd/MM/yyyy”格式的日期会导致“字段 xxx 必须是日期”错误。另一方面,如果我在下面注释kendoValidator()行,错误已经消失,但在这种情况下,我无法执行客户端验证,因此我想使用 kendoValidator。以下是与此控件相关的代码部分。

实体:

[Required(ErrorMessage = "Required field")]
[Display(Name = "Start Date")]
public DateTime StartDate { get; set; }
Run Code Online (Sandbox Code Playgroud)


看法:

...    
<script src="~/Scripts/kendo/2014.3.1119/cultures/kendo.culture.de.min.js"></script>
<script src="~/Scripts/kendo/2014.3.1119/messages/kendo.messages.de-DE.min.js"></script>

<script>
    $(function () {
        $("form").kendoValidator(); //This line cause the error...
    });
</script>

@Html.LabelFor(m => m.StartDate )
    @(Html.Kendo().DatePickerFor(m => m.StartDate)
    .Animation(true)
    .Culture("de-DE")
    .Footer(false)
    .Format("dd/MM/yyyy")
    .Value(DateTime.Today) 
 )
Run Code Online (Sandbox Code Playgroud)


实体或视图是否有任何缺失或错误的定义?IE

[DataType(DataType.Date)]
Run Code Online (Sandbox Code Playgroud)

在此先感谢您的帮助...

Dav*_*ose 7

您可以尝试将其作为可能的解决方案:

1)如果要将 de-DE 文化应用于整个站点,则可以添加:

<script type="text/javascript">
    kendo.culture("de-DE");
</script>
Run Code Online (Sandbox Code Playgroud)

将文化替换为您要应用的文化,并确保您已将适当的文化脚本添加到页面。

2)您可以尝试的下一件事是将您想要的日期格式添加到控件的允许日期格式“parseFormats”中。

这可以像这样完成:

  @(Html.Kendo().DatePickerFor(m => m.StartDate)
                .Format("dd/MM/yyyy")
                .ParseFormats(new List<string>()               
                              {
                                "dd/MM/yyyy", 
                                "dd/MM/yy",
                                "dd MMM yyyy" 
                              })
   )
Run Code Online (Sandbox Code Playgroud)

这些通常是我处理日期和验证的方式。