Javascript 在一个Ajax中将多个序列化表单发布到控制器C#?
我有两个表单,我想立即使用序列化概念发布到控制器。是否可以在一个ajax中向控制器发送多个序列化表单? 如果是,我怎么做 这是我的ajax/javascript: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();
$('#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)