Jquery 无法将表单内容传递到actionresult中的视图模型

Jquery 无法将表单内容传递到actionresult中的视图模型,jquery,ajax,asp.net-mvc,Jquery,Ajax,Asp.net Mvc,我试图传递一个字符串(表示已单击的按钮)和表单的内容,但当代码到达actionresult时,vModel对象始终为null。谁能帮我修一下吗 以下是代码片段: var form = $('#Application'); if (form.valid()) { var data = { 'submitButton': "Submit your application", 'vModel':

我试图传递一个字符串(表示已单击的按钮)和表单的内容,但当代码到达actionresult时,vModel对象始终为null。谁能帮我修一下吗

以下是代码片段:

    var form = $('#Application');
    if (form.valid()) {
            var data = { 
                'submitButton': "Submit your application",
                'vModel': JSON.stringify(form.serialize())
            };

            $("#submit-application-dialog").dialog({
                resizable: false,
                height: "auto",
                width: 400,
                modal: true,
                buttons: {
                    "Submit application": function () {
                        $.ajax({
                            url: form.attr('action'),
                            type: 'POST',
                            data: data,
                            success: $("#submit-application-dialog").dialog("close")
                        });
                    },
                    Cancel: function () {
                        $(this).dialog("close");
                    }
                }
            });
     }
结果是:

    [HttpPost]
    public ActionResult Application(string submitButton, ApplicationViewModel vModel)
    {
    ...
任何帮助都将不胜感激


谢谢。

我做了类似的事情,将值添加到查询字符串中,如下图所示,而不是添加控制器操作参数

var myData = $('#frmMyForm').serialize();
myData = myData + "&ButtonClicked=" + "Button1";             

            $.ajax({
                type: "POST",
                url: "@Url.Action("MyActionName", "MyControllerName")",
                data: myData,
                contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
                success: function(data) {
                \\Do stuff here if needed;
                }
然后在控制器中,我从表单集合中提取值

var buttonName = Request.Form["ButtonClicked"];
也许有更好的或者说不那么笨重的方法来做这件事,但这对我来说很有效

希望有帮助

你好,我昨晚想到了一个更好的解决方案。向视图模型中添加一个属性,可能称为“ButtonClicked”

然后在JQuery中,捕获提交的click事件,如下所示,并相应地设置按钮名称

<script>
    $(document).ready(function () {

        $(document).on("click", "#btnSubmitButton", function () {
            $("#ButtonClicked").val("ThisButton");
        });

    });
 </script>

$(文档).ready(函数(){
$(文档)。在(“单击”上,“#btnSubmitButton”,函数(){
$(“#按钮单击”).val(“此按钮”);
});
});
然后将其绑定到发布的模型。
谢谢

谢谢,这确实帮助了我解决问题。因此,我在ActionResult中保留了最初的两个属性,但使用了您的“var myData…”代码,现在它可以正确地传递所有内容:)。@Diz19791-Hi。。我认为有一个更好的解决办法。。我已经编辑了答案。助教