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; }

提供した正規表現でそれを装飾して、有効な通貨値を入力し、inputそのフィールドにバインドするようにします。

次に、アクションに入ると、次のようなことをしたいと思うでしょうDecimal.TryParse:

decimal result;
var success = decimal.TryParse(o.FormattedPrice, NumberStyles.AllowDecimalPoint, CultureInfo.DefaultThreadCurrentCulture, out result);

アクションにo投稿されたモデルのインスタンスです。さらに、あなたの文化のために、あなたの例のようにNumberStyles.AllowDecimalPoint翻訳する必要があります。,私はそれが少し逆であることを知っていますが、このように考えてみて.ください。米国では、同じ列挙値が,.

解析に成功した場合successは true になり、 に設定できresultますo.Price

于 2013-01-16T16:02:58.937 に答える