我和我来自罗马尼亚的问题非常相似。这里是我的解决方案:
查看/共享/ 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