ASP.NET MVC 3:动态/ AJAX内容不引人注意的客户端验证所必需的步骤

时间:2011-12-16 17:46:17

标签: asp.net-mvc unobtrusive-validation

对于动态插入的表单字段,客户端不显眼验证的完整所需步骤是完整的?

相关SO帖子

ASP.NET MVC 3 unobtrusive client-side validation with dynamic content - 他需要不显眼的验证属性显示在生成的HTML中,并通过调用BeginForm

来实现

ASP.Net MVC 3 validation on AjaxForm - 提问者正在使用Ajax.BeginForm,它使用MicrosoftAjax而不是JQuery.validation。

PartialView and unobtrusive client validation not working - 他的问题是不显眼的验证属性没有显示并覆盖ViewContext.FormContext作为解决方法。

ASP.NET MVC 3: Generate unobtrusive validation when BeginForm is on the layout - 不显示在HTML中的不显眼的验证属性的解决方法

相关链接

Brad Wilson的Unobtrusive Client Validation in ASP.NET MVC 3

The Complete Guide To Validation In ASP.NET MVC 3 - Part 1

The Complete Guide To Validation In ASP.NET MVC 3 - Part 2

Unobtrusive Client-side Validation with Dynamic Contents in ASP.NET MVC 3

1 个答案:

答案 0 :(得分:55)

此时我认为以下是一套完整的要求:

  1. 使用Html.BeginForm
  2. 创建表单
  3. 开启ClientValidationEnabled
  4. 开启UnobtrusiveJavaScriptEnabled
  5. 在模型的属性(字段)
  6. 上设置适当的验证属性
  7. 如果用于创建表单元素的Html帮助程序与Html.BeginForm调用不在同一表单上,请使用相关的解决方法(请参阅workaround 1workaround 2
  8. 按顺序添加jqueryjquery.validate.jsjquery.validate.unobtrusive.js个文件
  9. 验证HTML中是否存在不显眼的验证属性
  10. 如果使用自定义验证器:
    • 确保将其添加到jQuery.validator.unobtrusive.adapters
    • 通过调用jQuery.validator.addMethod确保将它们添加到jQuery验证插件中。
    • 确保上述事件发生在$(document).ready()之前,因为此时已为时已晚
  11. 在初始页面加载后动态添加的元素上调用jQuery.validator.unobtrusive.parsejQuery.validator.unobtrusive.parseElement