我有一个带有这个货币字段的 ASP.NET MVC-4 应用程序:
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:c}", ConvertEmptyStringToNull = true)]
[DataType(DataType.Currency)]
public decimal? Price { get; set; }
这是我认为的相应部分:
@Html.EditorFor(model => model.Price)
@Html.ValidationMessageFor(model => model.Price)
如果价格为 100 欧元,视图中的文本字段将显示:
100,00 欧元</p>
这很好。
但是,一旦我尝试进行回发,我就会遇到问题。验证器弹出并说价格字段需要是一个数字。
只有在 (1) 删除 € 符号并 (2) 替换小数点分隔符(用点替换逗号)时,我才能解决此问题。
如果没有更好的解决方案,我想我可以更改 DataFormatString = "{0:F2}" 以避免货币符号。
但是如何让验证器接受逗号作为小数分隔符而不是(美国)点?
谢谢你们的帮助,伙计们!