Asp.net mvc 3 ASP.NET MVC 3-带货币字段的客户端验证
我确实关注了这个博客和 我有以下问题 我表格中的一个字段是currecy格式,来自巴西。 我正在使用客户端验证。除了一个问题,一切都很好 我有两个验证: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
[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必须是一个数字
<globalization culture="pt-br" uiCulture="pt-br" />
我怎样才能“愚弄”.NET接受这种格式?因为它需要十进制格式。您无法愚弄默认的模型绑定器。它只是尝试使用web.config中指定的区域性将请求字符串值解析为十进制。因此,由于您也在使用客户端验证,因此客户端和服务器之间可能存在文化差异。例如,可以将浏览器配置为使用en US和服务器pt BR,然后您可能会遇到问题。你可以试试这个:
<globalization culture="auto" uiCulture="auto" />
这意味着服务器使用的区域性将由客户端决定。如果这不起作用,您还有其他几种可能性:
- 编写自定义模型活页夹
- 使用字符串而不是十进制,然后手动执行解析
<globalization culture="auto" uiCulture="auto" />