范围验证错误总是显示

问题描述:

这是我的剃刀:范围验证错误总是显示

<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

你有相关的文件(JS/CSS)加载正确? – Shyju

+0

@Shyju什么相关文件?不,我没有做任何与CSS – Bohn

+0

@Shyju:请更具体一点,如果有文件,你能指出我吗? – Bohn

你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