ASP MVC 3客户端日期本地化验证

时间:2012-05-23 15:43:31

标签: jquery asp.net-mvc-3 validation

我目前正忙于Asp.net MVC 3网站。 我有一个下拉菜单设置文化(nl-BE // en-US)

当我尝试使用nl-BE文化解析格式为'dd / mm / yyyy'的日期时,在SERVER上,一切正常,但在客户端上我的浏览器(chrome)继续说dateformat“dd / mm / yyyy“不是正确的日期格式。 (客户端验证)

我已尝试使用jquery的'globalize.js',但是没有成功。

我可以欺骗浏览器的唯一方法是手动添加我自己的验证器                                     jQuery.validator.addMethod(                                         '日期',                                         function(value,element,params){                                             return Date.parseExact(value,“d / M / yyyy”);                                         });

但是当我输入以下日期:25/05/2012对于nl-BE,浏览器说好了,但我的服务器抛出错误,(因为这个错误的格式)所以它不是错误证明。

有人可以帮助进行可以处理的错误验证客户端验证 dd / mm / yyyy或mm / dd / yyyy

由于

2 个答案:

答案 0 :(得分:1)

您可以在Object属性中强制它。

[DisplayFormat(DataFormatString = "{0:dd-MM-yyyy}", ApplyFormatInEditMode = true)]

如果你将它与jQuery UI datepicker结合使用,那么网站访问者不会输入日期,而是选择一个日期,它应该是可靠的。

您需要的最后一件事是在您的共享文件夹中,一个新文件夹:EditorTemplates with new view:DateTime.cshtml:

@model System.DateTime 
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, 
                    new { data_datepicker=true })

答案 1 :(得分:1)

这是Chrome中的一个错误,我在这里找到了解决方案))

http://geekswithblogs.net/EltonStoneman/archive/2009/10/29/jquery-date-validation-in-chrome.aspx

也许有些人也会得到错误;)