【问题标题】:DataAnnotation Range validator not returning specified error messageDataAnnotation Range 验证器未返回指定的错误消息
【发布时间】:2023-03-21 12:21:01
【问题描述】:

我在 Age 字段的元数据类中有以下代码,类型为 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.

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

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 有些笨蛋对我投了反对票,却没有足够的勇气发表评论?

标签: c# data-annotations


【解决方案1】:

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

我变了:

@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" })

现在它就像一个冠军。

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 2015-11-10
    • 1970-01-01
    • 2015-11-20
    • 1970-01-01
    • 2017-08-15
    • 1970-01-01
    • 1970-01-01
    • 2018-04-30
    相关资源
    最近更新 更多