0

在我的这一行中web.config,数字喜欢2.440.5正常工作 - 通常所有小数都在ViewModels.
我在这里找到了解决方案,如果我想在视图模型中使用小数,我必须globalization像这样进行更改:

<globalization culture="en-us" uiCulture="pl-PL" />

但现在日期是格式6/19/2013 10:04:18 PM- 我想要欧洲格式,比如19-6-2013 22:04:18. 总是自动的。

当我更改culturepl-PL时,日期格式正确,但文本框中的小数不起作用..(当数字为十进制时返回 0)。

我怎样才能拥有欧洲日期时间格式和工作小数?

问候

4

1 回答 1

1

我有同样的问题,因为我来自罗马尼亚。这是我的解决方案:

Views/Shared/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 模板的更多信息

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" />

,从而强制文化(我永远不必以不同的格式显示日期或货币 - 或任何十进制数字)。

于 2013-07-30T09:54:18.770 回答