【问题标题】:ASP.NET MVC 3: Required steps for unobtrusive client-side validation of dynamic/AJAX contentASP.NET MVC 3:对动态/AJAX 内容进行不显眼的客户端验证所需的步骤
【发布时间】:2012-01-22 05:03:46
【问题描述】:

要使客户端不显眼的验证适用于动态插入的表单字段,需要哪些完整的步骤

相关的 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 中不显示不显眼的验证属性的解决方法

相关链接

布拉德威尔逊的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

【问题讨论】:

    标签: asp.net-mvc unobtrusive-validation


    【解决方案1】:

    在这一点上我相信以下是一套完整的要求:

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

    【讨论】:

    • 第2步不需要,第6步也需要jquery.js。
    • 为什么不需要第二步,根据上面链接的 Brad Wilson 的博客文章,它是必需的?
    • ensure that the above happen before $(document).ready() as at that point it's too late 这就是为我解决的问题。
    猜你喜欢
    • 1970-01-01
    • 2012-07-26
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    相关资源
    最近更新 更多