这是我的剃刀:
<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
?请告诉我。
答案 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(); }