1
我有一系列的MVC網頁表單。最近在對網站進行了一些更新之後,DateTime字段驗證假定日期採用美國格式,因此大於12的日期未通過驗證,儘管事實上我已將編輯日期格式,驗證代碼和區域性文件指定爲en- GB。嘗試過各種瀏覽器,所有的語言都設置爲英文(英國),並且Firefox,Chrome和Edge的驗證失敗,並且只能在IE中使用。嘗試了各種其他建議,包括ModelBinding,但似乎沒有任何工作。.NET MVC英國日期格式不會驗證,儘管文化en-GB
在類:
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}", ApplyFormatInEditMode = true)]
在web.config中:
<globalization culture="en-GB" uiCulture="en-GB" requestEncoding="utf-8" responseEncoding="utf-8" enableClientBasedCulture="false" />
在global.asax中:
CultureInfo newCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();
newCulture.DateTimeFormat.ShortDatePattern = "dd/MM/yyyy";
newCulture.DateTimeFormat.DateSeparator = "/";
Thread.CurrentThread.CurrentCulture = newCulture;
Thread.CurrentThread.CurrentUICulture = System.Globalization.CultureInfo.GetCultureInfo("en-GB");
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
在jquery.validate.js:
date: function (value, element) {
$.culture = Globalize.culture("en-GB");
var date = Globalize.parseDate(value, "dd/MM/yyyy", "en-GB");
return this.optional(element) ||
!/Invalid|NaN/.test(new Date(date).toString());
}
其他建議?
在global.asax中,'newCulture'的含義是什麼?它被覆蓋2行後。 – kiziu
@ kiziu,我拼命嘗試每一個我遇到的建議! – Chelle