如何在Ajax发布中传递多个json对象以在conTroller中获得相同的内容

Mon*_*ata 2 jquery asp.net-mvc-4

我在这里和谷歌都经历过所有可能的问题.没有找到任何有用的或者我不知道如何相应地更改代码.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;
    }
Run Code Online (Sandbox Code Playgroud)

我的控制器代码如下:

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);
    }
Run Code Online (Sandbox Code Playgroud)

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; }
}
Run Code Online (Sandbox Code Playgroud)

现在我需要将这些主值和细节值传递给控制器​​.有关详细信息,我将逗号分隔值传递给控制器​​.它没有显示任何错误,断点也有效.

在控制器方法中,我将对象值设为null.为什么会这样?

Pra*_*aja 7

试试这种方式

             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
                }
            });
Run Code Online (Sandbox Code Playgroud)