我已经在这里和谷歌中解决了所有可能的问题。没有找到任何有用的东西,或者也许我不知道如何相应地更改代码。 JQuery 中的新功能。请参阅下面我的代码。
在表单中,有主条目和详细条目。这里的 Employee 部分是 Master 部分,Member 部分是明细部分,包含多行。我需要通过单击按钮传递所有记录。
var Employee = {
"Title": "",
"FirstName": "",
"MiddleName": "",
"LastName": "",
"Gender": ""
}
Employee.Title = $('#ddltitle').val();
Employee.FirstName = $('#txtfname').val();
Employee.MiddleName = $('#txtmname').val();
Employee.LastName = $('#txtlname').val();
Employee.Gender = $('#ddlgender').val();
var Member = {
"Membername": "",
"Relation": "",
"Gender": "",
"DOB": "",
"Age": ""
}
Member.Membername = $('#txtmem1').val() + "," + $('#txtmem2').val() + "," + $('#txtmem3').val() + "," + $('#txtmem4').val() + "," + $('#txtmem5').val();
Member.Relation = $('#ddlrel1').val() + "," + $('#ddlrel2').val() + "," + $('#ddlrel3').val() + "," + $('#ddlrel4').val() + "," + $('#ddlrel5').val();
Member.Gender = $('#ddlgen1').val() + "," + $('#ddlgen2').val() + "," + $('#ddlgen3').val() + "," + $('#ddlgen4').val() + "," + $('#ddlgen5').val();
Member.DOB = $('#txtdob1').val() + "," + $('#txtdob2').val() + "," + $('#txtdob3').val() + "," + $('#txtdob4').val() + "," + $('#txtdob5').val();
if ($("#btnSubmit").val() == "Submit") {
var url = "/Employee/InsertEmployee";
$.post(url,Employee,Member, function (data) {
$.each(data, function (i, response) {
if (response.Result == "Success") {
alert("Employee Inserted Successfully");
var url = window.location.href;
window.location.href = url;
ClearFields();
}
else {
alert(response.Error);
var url = window.location.href
window.location.href = url;
ClearFields();
}
});
});
return;
}
我的 Controller 代码如下:
public JsonResult InsertEmployee(DMEmployee objEmp,DMMember objMem)
{
BLLEmployee obl = new BLLEmployee();
int i = obl.InsertEmployee(objEmp, objMem);
int i = 0;
List<ResultMessage> l = new List<ResultMessage>();
ResultMessage Rescls;
if (i > 0)
{
Rescls = new ResultMessage();
Rescls.Result = "Success";
}
else
{
Rescls = new ResultMessage();
Rescls.Error = "Enter Valid Credentials";
}
l.Add(Rescls);
return Json(l, JsonRequestBehavior.AllowGet);
}
DMEmployee 和 DMMember 类如下
public class DMEmployee
{
//Employee Details
public string Title { get; set; }
public string FirstName { get; set; }
public string MiddleName { get; set; }
public string LastName { get; set; }
public string Gender { get; set; }
}
public class DMMember
{
//Family Details
public string Membername { get; set; }
public string Relation { get; set; }
public string Gender { get; set; }
public string DOB { get; set; }
public int Age { get; set; }
}
现在我需要将这些主值和详细值传递给 Controller 。有关详细信息,我将逗号分隔值传递给 Controller 。它没有显示任何错误,断点也起作用。
在 Controller 方法中,我得到的对象值为空。为什么会这样?
最佳答案
试试这个方法
var Employee = {
Title: $('#ddltitle').val(),
FirstName: $('#txtfname').val(),
MiddleName:$('#txtmname').val(),
LastName: $('#txtlname').val(),
Gender: $('#ddlgender').val()
}
var Member = {
Membername: $('#txtmem1').val() + "," + $('#txtmem2').val() + "," + $('#txtmem3').val() + "," + $('#txtmem4').val() + "," + $('#txtmem5').val(),
Relation: $('#ddlrel1').val() + "," + $('#ddlrel2').val() + "," + $('#ddlrel3').val() + "," + $('#ddlrel4').val() + "," + $('#ddlrel5').val(),
Gender: $('#ddlgen1').val() + "," + $('#ddlgen2').val() + "," + $('#ddlgen3').val() + "," + $('#ddlgen4').val() + "," + $('#ddlgen5').val(),
DOB: $('#txtdob1').val() + "," + $('#txtdob2').val() + "," + $('#txtdob3').val() + "," + $('#txtdob4').val() + "," + $('#txtdob5').val(),
Age: ""
}
//creating json multiple object
var postData = {
objEmp: Employee,
objMem: Member
};
$.ajax({
type: "post"
url: url.
contentType: "application/json; charset=utf-8",
dataType: "json",
data: JSON.stringify(postData),
success: function (data) {
//do you actions
}
});
关于jquery - 如何在 Ajax 发布中传递多个 json 对象以在 conTroller 中获得相同的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37406813/