首页 > 解决方案 > 模型验证不显示错误消息

问题描述

我正在开发一个 ASP.NET Core MVC Web 应用程序,但是,我遇到了数据注释问题。

对于intdecimal,我无法覆盖数据注释的默认错误消息。对于string,数据注释有效。

这应该显示我设置的所需错误消息,它是int

这显示了正确的错误消息 - 它是string

应该显示我在它的模型中设置的错误消息

这发生在前面提到的数据类型int和数据类型上。decimal这是我的模型中的属性:

    [Required(ErrorMessage = "Please provide the model")]
    [StringLength(55, ErrorMessage = "The model is too long")]
    public string MODEL { get; set; }

    [Required(ErrorMessage = "Please provide the service period")]
    [Range(0, 5, ErrorMessage = "Please provide a smaller number")]
    [RegularExpression("([0-9]+)", ErrorMessage = "Not a number")]
    public int SERVICE_PERIOD { get; set; }

正如我之前所说,string数据类型按预期工作,但是,int数据类型没有显示我自己需要的错误消息,也没有显示表明它不是数字的错误消息。decimal数据类型错误仅适用于数字超过 5 个数字时的数据注释,即 Range 数据注释。

我会很感激任何帮助,谢谢。

标签: c#asp.net-mvcvalidationdata-annotationsmodelstate

解决方案


它对我有用。

试试这个属性:

[Range(0, int.MaxValue, ErrorMessage = "Please enter valid integer Number")]

或者您可以使用正则表达式:

[RegularExpression("([0-9]+)", ErrorMessage = "Please enter valid Number")]
public int bmi_number { get; set; }

推荐阅读