加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc-3 – 在ajax发布之前使用unobtrusive进行验证

发布时间:2020-12-16 03:43:58 所属栏目:asp.Net 来源:网络整理
导读:所以我一直在玩Anti Forgery Token,making progress感谢你们. 我已经想出了一个合并表单值的解决方案,以及让我的ActionMethods不要反击AntiForgery令牌……我遗憾地在这个过程中破坏了验证.在忽略客户端验证/客户端验证之前,将触发AJAX帖子.服务器端工作,但
所以我一直在玩Anti Forgery Token,making progress感谢你们.

我已经想出了一个合并表单值的解决方案,以及让我的ActionMethods不要反击AntiForgery令牌……我遗憾地在这个过程中破坏了验证.在忽略客户端验证/客户端验证之前,将触发AJAX帖子.服务器端工作,但我会在帖子之前挖掘一些验证..这是我正在使用的代码.

$(document).ready(function () {
 $('input[type=submit]').live("click",function (event) {
     event.preventDefault();

     // Form with the AntiForgeryToken in it
     var _tokenForm = $(this).parents().find("#__AjaxAntiForgeryForm");

     // Current Form we are using
     var _currentForm = $(this).closest('form');

     // Element to update passed in from AjaxOptions
     var _updateElement = $(_currentForm).attr("data-ajax-update");

     // Serialize the array
     var arr = $(_currentForm).serializeArray();

     //Merge TokenForm with the CurrentForm
     $.merge(arr,$(_tokenForm).serializeArray());


     // The AJAX Form Post stuff
     $.ajax({
         type: "POST",url: $(_currentForm).attr('action'),data: arr,success: function (data) {
             $(_updateElement).html(data);
         }
     });

     return false;
 });

});

所以我想我需要在$.ajax goo之前以某种方式处理客户端验证…任何建议都可能节省我一些时间.

解决方法

叫这个:

var formValid = $("#FormId").validate().form();

if (!formValid) return false;

添加到您的代码中:

$(document).ready(function () {
 $('input[type=submit]').live("click",function (event) {
     event.preventDefault();

     // Form with the AntiForgeryToken in it
     var _tokenForm = $(this).parents().find("#__AjaxAntiForgeryForm");

     // Current Form we are using
     var _currentForm = $(this).closest('form');

     var isValid = $(_currentForm).validate().form();

     if (!isValid) return false;

     // Element to update passed in from AjaxOptions
     var _updateElement = $(_currentForm).attr("data-ajax-update");

     // Serialize the array
     var arr = $(_currentForm).serializeArray();

     //Merge TokenForm with the CurrentForm
     $.merge(arr,success: function (data) {
             $(_updateElement).html(data);
         }
     });

     return false;
 });
});

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读