我和我來自羅馬尼亞的問題非常相似。這裏是我的解決方案:
查看/共享/ DisplayTemplates/Date.cshtml(創建文件夾和文件,如果不存在)
@model Nullable<DateTime>
@{
DateTime dt = DateTime.Now;
if (Model != null) {
dt = (System.DateTime)Model;
}
@dt.ToString("dd/MM/yyyy", System.Globalization.CultureInfo.InvariantCulture);
}
基本上,只要你使用Html.Display或Html.DisplayFor爲一個DateTime(在我的例子中爲空),它將根據這個模板被渲染。你也可以設置一個編輯器模板(我使用jQuery UI的DatePicker)。你可以閱讀更多關於MVC模板here
腳本(在所有視圖,因此有售)Layout.cs引用
$.validator.methods.number = function (value, element) {
value = floatValue(value);
return this.optional(element) || !isNaN(value);
}
$.validator.methods.range = function (value, element, param) {
value = floatValue(value);
return this.optional(element) ||
(value >= param[0] && value <= param[1]);
}
function floatValue(value) {
return parseFloat(value.replace(",", "."));
}
這是在文本框和這樣的固定小數點標記問題。
我不是說這是最好的解決方案(至少後面的部分,實際上取代點和逗號可能看起來很原始),但它可以完成工作。我還提到,我用
<globalization enableClientBasedCulture="false" culture="ro" uiCulture="ro" />
,從而迫使文化(我從來沒有顯示日期或貨幣 - 或任何十進制數 - 以不同的格式)。
'DateTime'沒有固有的格式。當你ToString'時,你可以傳入想要的文化。 – Oded
我是否必須使用'ToString'將所有'DateTime'變量變成specyfic文化?這不是一個解決方案。 – whoah
那麼也許你可以創建自己的自定義文化信息,然後根據需要設置分隔符,並將其指定爲當前文化 – V4Vendetta