DataAnnotation 范围验证器未返回指定的错误消息

DataAnnotation Range validator not returning specified error message

我的 Age 字段的元数据 class 中有以下代码,类型为 int。

[Display(Name = "Age", Prompt = "Age")]
[Required(AllowEmptyStrings = false, ErrorMessage = "Age is required")]
[Range(16, 99, ErrorMessage = "Please specify an Age between 16 and 99")]
public int Age { get; set; }

在我看来,我将字段定义为:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @type = "number", @min = "16", @max = "99", @maxlength = "2" })

在表单中,HTML 呈现如下:

<input name="Age" class="form-control numeric" id="Age" type="number" maxlength="2" min="16" max="99" placeholder="Age" value="" data-val-required="Age is required" data-val-number="The field Age must be a number." data-val="true" data-val-range-min="16" data-val-range-max="99" data-val-range="Please specify an Age between 16 and 99">

然而返回的错误信息是:

Please enter a value greater than or equal to 16.

有没有其他人遇到过这个错误?

如有任何帮助,我们将不胜感激。谢谢

已解决。显然,当字段定义为数字而不是文本字段时会发生这种情况。

我改变了:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @type = "number", @min = "16", @max = "99", @maxlength = "2" })

至:

@Html.TextBoxFor(m => m.Age, new { @class = "form-control numeric", @placeholder = Html.DisplayNameFor(m => m.Age), @maxlength = "2" })

现在它像冠军一样工作。