在web.config
中使用此行,2.44
或0.5
等数字正常工作 - 通常是ViewModels
中的所有小数。
我在此处找到了解决方案,如果我想在viewmodel中有小数,我必须像这样更改globalization
:
<globalization culture="en-us" uiCulture="pl-PL" />
但现在日期格式为6/19/2013 10:04:18 PM
- 我想要欧洲格式,例如19-6-2013 22:04:18
。始终自动。
当我将culture
更改为pl-PL
时,日期格式正确,但文本框中的小数不起作用..(当数字为十进制时返回0)。
如何使用欧洲日期时间格式和工作小数?
此致
答案 0 :(得分:1)
我遇到了同样的问题,因为我来自罗马尼亚。这是我的解决方案:
观看/共享/ 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" />
,从而迫使文化(我永远不必以不同的格式显示日期或货币 - 或任何十进制数字)。