如何更改默认的“字段必须是一个数字”(How to change the default “The

2019-06-26 19:24发布

我工作的一个MVC 3应用程序。 一个在模型中的字段的类型是双的,并定义如下:

    [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”,我得到默认的消息“这个领域的价格必须是数字”。

即使是在价格输入字段验证属性有什么“数据-VAL-数”。

谢谢

Answer 1:

默认的消息深深烤成的框架,作为一个字符串资源。 它试图通过字符串值,以double类型绑定时,默认的模型添加粘合剂。 所以,如果你想改变这个默认的消息,你可以写一个自定义模型粘合剂。 下面是我写的具有相同问题的DateTime类型的例子: https://stackoverflow.com/a/7836093/29407



Answer 2:

如果你真行不断变化的只是事物的不显眼的验证方面,你总是可以提供自己的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." })


Answer 3:

我发现它更容易只是说:

 [RegularExpression("([0-9]+)", ErrorMessageResourceType = typeof(ErrorMessage), ErrorMessageResourceName = "NumberInvalid")]


文章来源: How to change the default “The field must be a number”