Asp.net mvc 3 ASP.NET MVC 3-带货币字段的客户端验证

Asp.net mvc 3 ASP.NET MVC 3-带货币字段的客户端验证,asp.net-mvc-3,client-side-validation,Asp.net Mvc 3,Client Side Validation,我确实关注了这个博客和 我有以下问题 我表格中的一个字段是currecy格式,来自巴西。 我正在使用客户端验证。除了一个问题,一切都很好 我有两个验证: [DisplayName("Taxa de adesão")] [MoedaReal(ErrorMessage = "Taxa deve ser numérico")] [Required(ErrorMessage = "Taxa é obrigatório")] public decimal ValorAdesao { get

我确实关注了这个博客

我有以下问题

我表格中的一个字段是currecy格式,来自巴西。 我正在使用客户端验证。除了一个问题,一切都很好

我有两个验证:

[DisplayName("Taxa de adesão")]
[MoedaReal(ErrorMessage = "Taxa deve ser numérico")]        
[Required(ErrorMessage = "Taxa é obrigatório")]
public decimal ValorAdesao { get; set; }
需要的规则行得通,moederal规则行得通。 这些规则通过ok后,将触发一个最终规则:

  • 野外分类群de adesão必须是一个数字
我已尝试更改此行中的web.config:

<globalization culture="pt-br" uiCulture="pt-br" />

我怎样才能“愚弄”.NET接受这种格式?因为它需要十进制格式。

您无法愚弄默认的模型绑定器。它只是尝试使用web.config中指定的区域性将请求字符串值解析为十进制。因此,由于您也在使用客户端验证,因此客户端和服务器之间可能存在文化差异。例如,可以将浏览器配置为使用en US和服务器pt BR,然后您可能会遇到问题。你可以试试这个:

<globalization culture="auto" uiCulture="auto" />

这意味着服务器使用的区域性将由客户端决定。如果这不起作用,您还有其他几种可能性:

  • 编写自定义模型活页夹
  • 使用字符串而不是十进制,然后手动执行解析

使用字符串解决了所有问题。我没有想到!谢谢
<globalization culture="auto" uiCulture="auto" />