范围验证错误总是显示
问题描述:
这是我的剃刀:范围验证错误总是显示
<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
也许?请告诉我。
答
你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有thew底部以下内容:
@Scripts.Render("~/bundles/jquery")
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/bundles/bootstrap")
然后,只要您在无论是在你的_layout或您的网页上的所有应工作如下:
@{Html.EnableClientValidation(); }
+0
非常好,它的工作。非常感谢。我花了整整一天的时间。 – Bohn
你有相关的文件(JS/CSS)加载正确? – Shyju
@Shyju什么相关文件?不,我没有做任何与CSS – Bohn
@Shyju:请更具体一点,如果有文件,你能指出我吗? – Bohn