0

所以我有一个表单和一个提交按钮,可以将表单发布到一个动作中。但我想显示一个弹出窗口,用户可以在其中拒绝或接受协议。

这是我的jQuery

$(document).ready((function () {
            var dialog = $('#confirmation-dialog').dialog({
                autoOpen: false, width: 500, height: 600, resizable: false, modal: true,
                buttons: {
                    "Accept": function () {
                        $(this).dialog('close');
                        $.ajax({
                            type: 'POST',
                            data: {__RequestVerificationToken: $("input[name=__RequestVerificationToken]").val()}
                        });
                    },
                    "Cancel": function () {
                        $(this).dialog('close');
                    }
                }
            });
            $('#registration-submit').click(function (e) {
                var action = $(this.form);
                console.log(action);
                var form = $('form');
                dialog.dialog("open");
                return false;
            });
        }));

我的问题是它会发布,但它只会发送我的 AntiforgeryToken,而不是表单的值。但是当它通过 TryupdateModel 时,由于某种原因它会通过但不会保存(因为丢失的数据没有在 formcollection 上传递)。

4

1 回答 1

1

您没有发送表单的数据......您只是发送__RequestVerificationToken:您的 ajax 请求。

也许尝试:

$(this).dialog('close');
var dataObj = $('form').serialize(); 
dataObj.__RequestVerificationToken = $("input[name=__RequestVerificationToken]").val();
$.ajax({
    type: 'POST',
    data: dataObj
});

这样,您将表单输入中的值添加到数据中,然后将您的令牌添加到其中。

于 2012-09-06T15:36:24.837 回答