数据类型.货币不显眼的验证不起作用
本文关键字:验证 不起作用 不显眼 货币 数据类型 | 更新日期: 2023-09-27 17:50:57
这个代码不工作,有人可以帮助我吗?
模型:
[Display(ResourceType = typeof(HeelpResources), Name = "AdViewModel_Price_Label")]
[Required(ErrorMessageResourceName = "ErrorMsgRequiredField", ErrorMessageResourceType = typeof(HeelpResources))]
[DataType(DataType.Currency, ErrorMessageResourceName = "ErrorMsgPriceFormat", ErrorMessageResourceType = typeof(HeelpResources))]
public decimal Price { get; set; }
在客户端生成:
data-val-number="The field Preço: must be a number".
而不是应该在资源"ErrorMsgPriceFormat"中的消息
谢谢。
我很确定你要做的是这样做:
public string FormattedPrice { get; set; }
用您提供的RegEx来修饰它,以确保它们输入有效的货币值,并将input
绑定到该字段。
当你进入你的行动时,你会想要对Decimal.TryParse
做这样的事情:
decimal result;
var success = decimal.TryParse(o.FormattedPrice, NumberStyles.AllowDecimalPoint, CultureInfo.DefaultThreadCurrentCulture, out result);
,其中o
是发布到动作的模型实例。此外,由于您的文化,NumberStyles.AllowDecimalPoint
应该像在您的示例中一样转换为,
。我知道这有点落后,但是这样想,在美国,小数分隔符是.
,所以在您的文化中,相同的枚举值转换为,
。
如果解析成功,那么success
将为真,您可以将result
设置为o.Price
。