0

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

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

我已经尝试过使用 jquery 的“globalize.js”,但仍然没有成功。

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

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

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

谢谢

4

2 回答 2

1

你可以在你的 Object 属性中强制它。

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

如果你将它与 jQuery UI 日期选择器结合起来,这样网站访问者就不会键入日期,而是选择一个日期,它应该是可靠的。

您需要的最后一件事是在您的共享文件夹中,一个新文件夹:带有新视图的 EditorTemplates:DateTime.cshtml:

@model System.DateTime 
@Html.TextBox("", ViewData.TemplateInfo.FormattedModelValue, 
                    new { data_datepicker=true })
于 2012-05-24T09:21:32.520 回答
1

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

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

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

于 2012-05-25T12:20:21.003 回答