范围验证错误始终显示

时间:2016-07-25 18:04:22

标签: asp.net asp.net-mvc

这是我的剃刀:

    <div class="row form-group">
        <label class="control-label col-md-2">Number to answer</label>
        <div class="col-md-6">
            @Html.TextBoxFor(t => t.SelectedQuestions, new { style = "width: 10%", @class = "form-control" })
            @Html.ValidationMessageFor(t => t.SelectedQuestions)
        </div>
    </div>

这是生成的HTML:

<div class="row form-group">
                <label class="control-label col-md-2">Number to answer</label>
                <div class="col-md-6">
                    <input class="input-validation-error form-control" data-val="true" data-val-number="The field SelectedQuestions must be a number." data-val-range="The value entered must be bigger than zero." data-val-range-max="6" data-val-range-min="1" data-val-required="The SelectedQuestions field is required." id="SelectedQuestions" name="SelectedQuestions" style="width: 10%" type="text" value="3">
                    <span class="field-validation-error" data-valmsg-for="SelectedQuestions" data-valmsg-replace="true">The value entered must be bigger than zero.</span>
                </div>
            </div>

这就是我如何定义属性:

CS代码

[Range(1, 6, ErrorMessage = "The value entered must be bigger than zero.")]
    [Required]
    public int SelectedQuestions { get; set; }

当我的页面LOADS时,该字段确实包含有效数据,但它仍然总是在字段下显示红色验证错误,为什么?

即使我删除了它中的数字并输入其他内容,它仍然是红色的,它不会消失。

如果有什么东西我应该添加到CSS?请告诉我。

1 个答案:

答案 0 :(得分:1)

您的BundleConfig.cs文件应该注册以下javascript文件:

 bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include(
                        "~/Scripts/jquery.validate*"));

以下css需要在你的css中(我想如果你看到红色的话):

.field-validation-error {
    font-weight:bold;
    color:red;
}

.validation-summary-errors {
    font-weight:bold;
    color:red;
}

确保你的_layout.cshtml在底部有以下内容:

@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")

然后只要你在_layout或你的页面上有以下内容就可以了:

@{Html.EnableClientValidation(); }