Kendo ui 日期时间格式不适用于斜杠剑道UI

Kendo ui 日期时间格式不适用于斜杠剑道UI,kendo-ui,Kendo Ui,我的web应用程序支持多种日期时间格式,即yyyy-MM-dd、yyy.MM.dd、dd/MM/yyyy和MM/dd/yyyyy。前两种格式工作得很好,但是,当我使用其他两种格式时,斜杠在初始打印中被替换为破折号,这使得它们无法通过验证。然而,如果我选择了一个日期,它会以正确的格式显示出来 我正在使用culture sv SE。我怀疑(没有剑道UI经验,但有其他日期/时间API经验)将“/”视为“特定于区域性的日期分隔符”。如果你想要“不管文化背景如何,都是正斜杠”,你可能需要避开它 如何执行转

我的web应用程序支持多种日期时间格式,即
yyyy-MM-dd
yyy.MM.dd
dd/MM/yyyy
MM/dd/yyyyy
。前两种格式工作得很好,但是,当我使用其他两种格式时,斜杠在初始打印中被替换为破折号,这使得它们无法通过验证。然而,如果我选择了一个日期,它会以正确的格式显示出来

我正在使用culture sv SE。

我怀疑(没有剑道UI经验,但有其他日期/时间API经验)将“/”视为“特定于区域性的日期分隔符”。如果你想要“不管文化背景如何,都是正斜杠”,你可能需要避开它

如何执行转义将取决于库,但通常只使用引号,例如

dd'/'MM'/'yyyy
MM'/'dd'/'yyyy
我怀疑(没有剑道UI的经验,但有其他日期/时间API的经验)将“/”视为“特定于区域性的日期分隔符”。如果你想要“不管文化背景如何,都是正斜杠”,你可能需要避开它

如何执行转义将取决于库,但通常只使用引号,例如

dd'/'MM'/'yyyy
MM'/'dd'/'yyyy
在他的回答中,这是关于
/
是.NET中的一个特殊字符

当使用剑道时,这是令人困惑的,因为它没有使用
/
作为一个标记

使用单独的格式字符串客户端和服务器端应该是答案,但不幸的是,在(客户端使用剑道的)中,客户端和服务器端都使用单个格式字符串,MVC剑道助手也使用单个格式字符串

例如,在具有日期格式“dd-MM-yyyy”(在Windows区域设置中设置)和视图模型的服务器上:

    [Display(Name="Date")]
    [UIHint("Date")]
    [DisplayFormat(DataFormatString = Constants.DateFormat, ApplyFormatInEditMode = true)]
    public DateTime Date { get; set; }
Constants.DateFormat
是“dd/MM/yyyy”),然后有一个编辑器模板(“Date.cshtml”):

导致初始日期显示“29-05-2015”和JavaScript错误,因为无法对其进行分析

作为一项工作,使用

@(Html.Kendo().DatePickerFor(m => m)
              .ParseFormats(new[] { "dd-MM-yyyy", Constants.DateFormat}))
生成的HTML中的格式是错误的,但JavaScript至少能够理解它。(当然,这应该利用
DateTimeFormatInfo.DateSeparator
动态构建替代格式。)

正如他的回答中所说,这是关于
/
在.NET中是一个特殊字符

当使用剑道时,这是令人困惑的,因为它没有使用
/
作为一个标记

使用单独的格式字符串客户端和服务器端应该是答案,但不幸的是,在(客户端使用剑道的)中,客户端和服务器端都使用单个格式字符串,MVC剑道助手也使用单个格式字符串

例如,在具有日期格式“dd-MM-yyyy”(在Windows区域设置中设置)和视图模型的服务器上:

    [Display(Name="Date")]
    [UIHint("Date")]
    [DisplayFormat(DataFormatString = Constants.DateFormat, ApplyFormatInEditMode = true)]
    public DateTime Date { get; set; }
Constants.DateFormat
是“dd/MM/yyyy”),然后有一个编辑器模板(“Date.cshtml”):

导致初始日期显示“29-05-2015”和JavaScript错误,因为无法对其进行分析

作为一项工作,使用

@(Html.Kendo().DatePickerFor(m => m)
              .ParseFormats(new[] { "dd-MM-yyyy", Constants.DateFormat}))
生成的HTML中的格式是错误的,但JavaScript至少能够理解它。(当然,这应该利用
DateTimeFormatInfo.DateSeparator
动态构建替代格式。)