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

标签 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;
    }

我的 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/

相关文章:

c# - 在 ASP.NET MVC4 中——我需要编辑一条记录并向其添加许多(1 到许多)子记录(在顶级记录的编辑模式下)

twitter-bootstrap - MVC 4 Styles.Render & Scripts.Render 说明

javascript - 比较字符串是否以符号 @jquery 或 javascript 开头

javascript - 加载(缓存?)网络元素到新页面

javascript - "include"js 和 css 文件使用 js 文件中的相对路径

javascript - 逆向工程调用了哪个 javascript/jquery 函数

asp.net-mvc-4 - 如果插件不可用,如何将新支付网关集成到 [NopCommerce 3.10] 中?

c# - Facebook 和 Twitter/LinkedIn 之间的 OAuth token 差异

javascript - Jquery 列生成器插件 : 40 times faster in Windows Firefox. 为什么?

javascript - 如何在一定时间延迟后清空输入字段?