提问者:小点点

序列化表单并将字符串列表附加到表单


我正试图连载我的表格,但由于某种原因我不能使它工作。表单的系列化工作正在进行。但问题是,我需要在之后添加一个列表,因为它不是表单的一部分,并且在这样做时,当它到达我的控制器endpoint时,我的模型是空的。

        var valdata = $("#CreateForm").serialize();  

        var elements = document.querySelectorAll('#productCheckbox:checked');
        var checkedElements = Array.prototype.map.call(elements, function (el, i) {
            return el.name;
        });

        if (checkedElements.length == 0) {
            alert('You must select at least one product');
            return
        }

        var data = {
            model: valdata,
            products: checkedElements
        };

        $.ajax({
            url: '/Product/Create',
            type: 'post',
            dataType: 'json',
            data: data,
            success: function (data) {
                console.log('Success: ' + JSON.stringify(data))
            },
            error: function (data) {
                console.log('Error: ' + JSON.stringify(data))
            }
        });

我正在打的控制器的功能:

public ActionResult Create(Model model, object products)

对象产品运行良好,但模型为null

有没有人有什么建议,如何解决这个问题?:-)

请不要介意像Model这样的对象的名称,这在我们的项目中被命名为其他的东西。


共1个答案

匿名用户

“data”参数只是一个URL编码字符串。您可以任意添加到它。

例如:

data: $('#myForm').serialize() + "&moredata=" + morevalue

查看以下链接以了解更多详细信息。

单击此处了解更多详细信息

相关问题