您如何 post 并在 Asp.net MVC 中验证全球化货币?

How do you post and validate Globalized currency in Asp.net MVC?

我正在尝试显示和编辑不同文化的小数。

文化“de”的问题示例: 当使用 1111,1 从模型初始化小数时,视图显示它是正确的,如:1.111,1 € 将值更改为:1.123,00 € 控制器在 POST 之后将其解释为 1,123

我怎样才能以整洁的方式解决这个问题?

型号:

using System;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Web.Mvc;

public Class Foo
{
        [DisplayName("Decimal")]
        [Required(ErrorMessage = "Decimal is Required")]
        [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}")]
        public decimal MyDecimal { get; set; }

}

查看:

@model Globalizer.Models.Foo

        @{ 
            using (Html.BeginForm("NewValues", "Home", FormMethod.Post))
            {
                @Html.ValidationSummary(true);
                @Html.ValidationMessageFor(model => model);
                @Html.EditorFor(model=>model)

                <input type="submit" />
            }
        }

控制器: 控制器只是保存和加载模型。

网络配置:

  <system.web>
    <globalization culture="auto" uiCulture="auto" />
  </system.web>

我用下一个 link:

部分解决了这个问题

https://johnnyreilly.github.io/jQuery.Validation.Unobtrusive.Native/AdvancedDemo/Globalize.html

JQuery.Validation.Globalize 包在 NuGet 上可用。