ASP.net MVC 4中的jQuery日期选择器和客户端日期验证问题

ASP.net MVC 4中的jQuery日期选择器和客户端日期验证问题,jquery,asp.net-mvc,jquery-ui,jquery-ui-datepicker,Jquery,Asp.net Mvc,Jquery Ui,Jquery Ui Datepicker,这是一个Asp.net MVC应用程序。我已经安装了jQuery.alidation.Globalize和jQuery.UI.i18n包,并在web.config中设置了固定的区域性“es PY” <globalization enableClientBasedCulture="true" uiCulture="es" culture="es-PY" /> 此外,我的模型中还有如下装饰日期属性: [DataType(DataType.Date), DisplayFormat(Dat

这是一个Asp.net MVC应用程序。我已经安装了jQuery.alidation.Globalize和jQuery.UI.i18n包,并在web.config中设置了固定的区域性“es PY”

<globalization enableClientBasedCulture="true" uiCulture="es" culture="es-PY" />
此外,我的模型中还有如下装饰日期属性:

[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public System.DateTime Fecha { get; set; }
我在显示jQuery datepicker时遇到了问题,正如您从图像中看到的,我得到的不是一个,而是两个下拉日历,除了文本输入中的值设置为dd/mm/aaaa外,还应该使用Fecha属性呈现。当我尝试从日历中选择日期时,客户端验证失败,这让我感到不安,因为es-PY区域性接受dd/MM/yyyy日期格式

因此,我的问题实际上是二合一的:为什么我要为inputbox获取两个日历,我还应该做些什么才能在客户端浏览器中获得日期通过验证


如果您想使用datepicker插件,请将
EditorFor
更改为
TextBoxFor
——否则Razor引擎将创建一个
元素,然后由浏览器决定要做什么

例如,我使用Telerik UI控件,它们添加的内容之一是
共享
中的
编辑模板
文件夹。这意味着当使用
EditorFor
时,
DateTime
属性触发Razor引擎使用Telerik的
DateTime.cshtml
Date.cshtml
(取决于数据注释类型)模板


如果您有任何映射到编辑器模板名称的属性,则情况也是如此。

是否使用了
EditorFor
?如果您有一个电子邮件控件模板,它将使用该模板作为编辑器,然后使用datepicker插件应用另一个模板。@tisont。是的,我使用编辑器,当你说电子邮件控制模板时,我不理解你的意思?如果你想使用datepicker插件,请将
EditorFor
更改为
TextBoxFor
-否则Razor引擎将创建一个
元素,然后由浏览器决定怎么做。@Elio.Batista抱歉,“电子邮件”是指我没有注意到我正在输入的内容;应该是“日期控制模板”。例如,我使用Telerik UI控件,它们添加的内容之一是共享中的EditorTemplate文件夹。这意味着
DateTime
属性在使用
EditorFor
时会触发Razor引擎使用Telerik的Date.cshtml模板。
[DataType(DataType.Date), DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
public System.DateTime Fecha { get; set; }