Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在一个Ajax中将多个序列化表单发布到控制器C#?_Javascript_C#_Ajax_Asp.net Mvc_Serialization - Fatal编程技术网

Javascript 在一个Ajax中将多个序列化表单发布到控制器C#?

Javascript 在一个Ajax中将多个序列化表单发布到控制器C#?,javascript,c#,ajax,asp.net-mvc,serialization,Javascript,C#,Ajax,Asp.net Mvc,Serialization,我有两个表单,我想立即使用序列化概念发布到控制器。是否可以在一个ajax中向控制器发送多个序列化表单? 如果是,我怎么做 这是我的ajax/javascript: $('#btnSave').click(function () { debugger; var vDataHead = $('#frmHeader').serialize(); var vDataDet = $('#frmDetail').serialize();

我有两个表单,我想立即使用序列化概念发布到控制器。是否可以在一个ajax中向控制器发送多个序列化表单? 如果是,我怎么做

这是我的ajax/javascript:

    $('#btnSave').click(function () {
        debugger;
        var vDataHead = $('#frmHeader').serialize();
        var vDataDet = $('#frmDetail').serialize();


        if ($("#txtCompanyID").val() == "" || $("#txtBranchID").val() == "" || $("#txtUserID").val() == "")
        {
            debugger;
            Swal.fire('Error!', 'Please Fill All Fields to Save Budget Setting!', 'error');
        }
        else
        {
            debugger;
            $.ajax({
                url: '/MappingUserItemGroup/SaveData',
                data: { dataHead: vDataHead, dataDet: vDataDet },
                method: 'POST',
                success: function (mdl)
                {
                    debugger;
                    if (mdl == "Exist")
                    {
                        debugger;
                        Swal.fire('Error!', 'Setting Mapping User Item Group Already Exist ', 'error');
                    }
                    else if (mdl == "Berhasil")
                    {
                        debugger;
                        Swal.fire('Success', 'Setting Mapping User Item Group Was Successfully Saved!', 'success').then(() => { loadTable();});
                    }
                    else if (mdl == "Gagal")
                    {
                        debugger;
                        Swal.fire('Error!', 'Setting Mapping User Item Group Failed To Be Saved!', 'error');
                    }
                },
                error: function (mdl)
                {
                    debugger;
                }
            });
        }
    });
这是我的控制器:

public ActionResult SaveData(MapingUIGH dataHead, List<MapingUIGD> dataDet)
    {
        //do something here with that data serialize

    }
public ActionResult SaveData(MapingUIGH数据头,List dataDet)
{
//在这里对数据进行序列化
}

您将两个表单值作为对象传递,因此在服务器端创建一个与该对象匹配的视图模型

public class MappingViewModel
{
    public MapingUIGH DataHead { get; set; }
    public List<MapingUIGD> DataDet { get; set; }
}

检查此选项是否回答了您的问题?如果你想用同一种方法提交两个表单,为什么不能将这两个表单合并成一个表单?@HamzaHaider不,这对我没有帮助,因为我没有使用本地存储,但谢谢你的帮助help@RajeshG是的,如果我想可以,但我只是想知道它是否应该是两种形式,而不能是一种形式,这就是为什么我问它可能吗,如果是这样的话,那么如何在datadet中获取数据列表呢?它是如何在javascript中实现的?很抱歉,我还是新手,所以我有点困惑,你能告诉我更多吗?这是一个完全不同的问题,即使你在问题中没有提到
MapingUIGD
的属性是什么,或者如果你在
$('#frmDetail')表单中正确绑定了列表,你是如何在表单中绑定它的。serialize()
应该适合您。对不起,我的意思是,当我这样使用您的类时,如何在ajax中填充viewModel,如果使用1 serialize,我只调用该类并调用包含表单serialize的变量,例如
var vData=$('#frmDetail')。serialize()
和在ajax中
data:vData
,但是如果使用您的,我不知道如何操作。这就是我要求您详细说明的原因,如果您正确获取表单值,
数据:{dataHead:vDataHead,dataDet:vDataDet}
将使用参数正确绑定,不需要在UI端进行任何更改。绑定数据是正确的,但当我调试控制器时,数据是空的。还有什么我需要改变的吗?
public ActionResult SaveData(MappingViewModel viewModel)