1

此代码不起作用,有人可以帮助我吗?

模型:

    [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”中的消息。

谢谢。

4

1 回答 1

1

我很确定您将要做的更多是这些方面的事情:

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应该翻译为,就像在您的示例中所做的那样。我知道这有点倒退,但是这样想,在美国,小数点分隔符.对于您的文化是如此,相同的枚举值转换为,.

如果解析成功,则为successtrue,您可以设置resulto.Price.

于 2013-01-16T16:02:58.937 回答