10

私はMVC3アプリケーションに取り組んでいます。モデルのフィールドの1つは、double型であり、次のように定義されています。

    [Required(ErrorMessageResourceName = "ListingItemPriceRequired", ErrorMessageResourceType = typeof(ErrorMessages))]
    [Display(Name = "DisplayListingItemPrice", ResourceType = typeof(Display))]
    [Range(1, 500000000, ErrorMessageResourceName = "ListingItemPriceNotWithinRange", ErrorMessageResourceType = typeof(ErrorMessages))]
    public double Price { get; set; }

それでも、「342」のように末尾にスペースを入れて数値を入力すると、デフォルトのメッセージ「フィールド価格は数値である必要があります」が表示されます。

価格入力フィールドの検証属性でさえ、「data-val-number」のようなものがあります。

ありがとう

4

3 に答える 3

17

目立たない検証側だけを変更しても問題ない場合は、いつでも独自の jquery 検証属性を指定できます。

@Html.TextBoxFor(model => model.Price, new Dictionary<string, object>() { { "data-val-number", "Price must be a valid number." } })

または、MVC が属性名のアンダースコアをダッシュ​​に置き換えるため、以下はより単純になります。

@Html.TextBoxFor(model => model.Price, new { data_val_number = "Price must be a valid number." })
于 2013-12-16T16:49:06.640 に答える
6

次のように言う方が簡単だと思いました。

 [RegularExpression("([0-9]+)", ErrorMessageResourceType = typeof(ErrorMessage), ErrorMessageResourceName = "NumberInvalid")]
于 2013-11-05T15:40:38.440 に答える