自动验证表格

时间:2016-08-29 10:42:53

标签: jquery asp.net-mvc validation

所以我按照Pro ASP.Net MVC 5 book from Apress上的教程学习ASP.Net MVC5。

问题在于,他在第11章提到如何通过将以下脚本添加到需要验证的视图(以及使用Nuget的项目)来在客户端验证表单:

<script src="∼/Scripts/jquery-1.9.1.js"/>
<script src="∼/Scripts/jquery.validate.js"/>
<script src="∼/Scripts/jquery.validate.unobtrusive.js"/>

执行此操作后,使用模型属性的集合,我发现当输入字段失去焦点时,并非所有属性都被验证,即使HTML对所有属性都是正确的(根据我的理解)。

所以我拥有的是模型:

[Required(ErrorMessage = "Please enter a product name")]
public string Name { get; set; }

[Required(ErrorMessage = "Please enter a product description")]
public string Description { get; set; }

脚本已按照本书的说明添加到布局文件中,生成的HTML如下:

<div class="form-group">
  <label>Name</label>
  <input name="Name" class="form-control input-validation-error" id="Name" type="text" 
         value="Kayak" data-val-required="Please enter a product name" data-val="true">
  <span class="field-validation-error" data-valmsg-replace="true" data-valmsg-for="Name">
    <span for="Name" generated="true">Please enter a product name</span>
  </span>
</div>

<div class="form-group">
  <label>Description</label>
  <textarea name="Description" class="form-control" id="Description" rows="5" cols="20" 
           data-val-required="Please enter a product description" data-val="true"></textarea>
  <span class="field-validation-valid" data-valmsg-replace="true"
        data-valmsg-for="Description"></span>
 </div>

所以根据这本书,两个字段都应该在控件失去焦点时显示错误,但是现在只有“名字”正在这样做(你可以看到,在图片中,4个字段中有2个是验证,如上所述的另外两种情况相同:

enter image description here

所以问题是,我在这里错过了什么?

更新 为了防止它有用,在浏览器控制台上,我在加载页面时收到此警告:

  

HTTP404:未找到 - 服务器找不到与之匹配的内容   请求的URI(统一资源标识符)。 (XHR):GET -   http://localhost:61338/Content/bootstrap-theme.css

我正在使用Microsoft Edge来执行该网站。

更新2 我更新了使用jquery-1.10.2.js版本。相同的结果。

0 个答案:

没有答案