2012-05-23 81 views
0

我目前正忙於在Asp.net MVC 3網站。 在那裏我有一個下拉菜單設置文化(nl-BE // en-US)ASP MVC 3客戶端的日期本土化驗證

當我嘗試用n-BE文化在服務器上解析格式爲「dd/mm/yyyy」的日期時,一切正常,但在客戶端上我的瀏覽器(Chrome)口口聲聲說的日期格式「DD/MM/YYYY」是不正確的日期格式。 (客戶端驗證)

我已經試過與jQuery的的「globalize.js」,但還是老樣子沒有更迭。

我可以欺騙我的瀏覽器的唯一方法是手動添加自己的驗證 jQuery.validator.addMethod( 「日期」, 功能(價值元素,則params){ 返回Date.parseExact(價值「 d/M/yyyy「); });

但是,當我輸入下面的日期:25/05/2012爲NL-BE,瀏覽器說好,但我的服務器拋出一個錯誤,(因爲這種錯誤的格式),所以它不能防止出錯。

有人能幫助可處理 DD/MM/YYYY或MM/DD/YYYY

感謝

回答

1

你可能會迫使它在你的對象屬性防止出錯的客戶端驗證。

[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 }) 
+0

但是如果我需要MM-DD-YYYY當用戶選擇恩?我在IE中沒有任何投訴,但在Chrome中,他一直告訴我,它不是一個有效的日期 – iBoonZ