Jquery 将多个模型传递给控制器的Ajax操作后调用

Jquery 将多个模型传递给控制器的Ajax操作后调用,jquery,asp.net,ajax,asp.net-mvc,model,Jquery,Asp.net,Ajax,Asp.net Mvc,Model,我正在开发asp.net mvc web应用程序。我有一个用于注册用户信息的表单。保存操作在单击按钮时写入。我正试图将多个模型传递给控制器。但在控制器中,它变为空。我如何解决这个问题。我已经尝试了一些解决方案 以下是我的示例-请检查: 我有一个父模型: public class ParentUsers { public Login loginModel { get; set; } public Details registerModel { get; se

我正在开发asp.net mvc web应用程序。我有一个用于注册用户信息的表单。保存操作在单击按钮时写入。我正试图将多个模型传递给控制器。但在控制器中,它变为空。我如何解决这个问题。我已经尝试了一些解决方案

以下是我的示例-请检查:

我有一个父模型:

public class ParentUsers
    {
        public Login loginModel { get; set; }
        public Details registerModel { get; set; }
    }
Jquery函数

$("#registerLE").click(function () {          
            var form = $("#registration");
            var validatable = form.kendoValidator().data("kendoValidator");

            debugger
            if (validatable.validate()==true) {                
                var parentModel = {
                     loginModel :{
                        Username: $('input[name=uname]').val(),
                        Password: $('input[name=password]').val(),
                        Role: 'LE'                       
                    },

                 registerModel: {
                    name: $('input[name=firstname]').val(),
                    userId:1  
                  }

                }

                $.ajax({
                    type: "POST",
                    url: "/Home/Register",
                    data: { "parentModel": parentModel },
                    datatype: "json",
                    cache: false,
                    success: function (data) {
                        alert("You Multiple Data Passed Successfully");
                    },
                    error: function (xhr) {
                        alert('No Valid Data');
                    } 
                });
            } 
        });
控制器方法:

 public ActionResult Register(ParentUsers parentModel)
 {
       //...after save..//
       return View("Login");
 }

请帮助

您需要在ajax中进行一些更改。我已经测试了你的代码,它在我这边运行得很好

行动方法:

    public ActionResult SubmitMethod(ParentUsers parentuser)
    {

        //do stuff here

        return Json( ""  , JsonRequestBehavior.AllowGet);
    }
模态:

  public class ParentUsers
    {
        public loginModel loginModel { get; set; }
        public Details registerModel { get; set; }
    }

    public class loginModel {

        public string Username { get; set; }
        public string Password { get; set; }
        public string Role { get; set; }
    }

    public class Details {
        public string name { get; set; }
        public int Id { get; set; }

    }
Ajax代码:

   <script src="~/Scripts/jquery-1.10.2.min.js"></script>

<input type="button" id="btnPost" value="Gel Users" />

<script>

    $(document).ready(function () {

        $('#btnPost').click(function () {
            alert('btnPost');

            var loginModelObj = {

                Username:"UsernameValue",
                Password:"PasswordValue",
                Role:"RoleValue",
            };

            var registerModelObj = {
                name:"nameValue",
                Id:1

            };

            var SendObject = {

                loginModel: loginModelObj,   //loginModel same name as in Modal
                registerModel: registerModelObj,  //registerModel same name as in Modal
            }


            $.ajax({
                method: 'POST',
                url: '/Test/SubmitMethod',
                contentType: 'application/json',  // send data type to server
                dataType: 'json',  //return type of data from server
                data:JSON.stringify(SendObject),
                //  asyn: false,
                success: function (data, status, xhr) {

                    // do stuff here

                },
                error: function (response, status, xhr) {

                    alert(response.statusText);

                }
            })
        })
    })
</script>

$(文档).ready(函数(){
$('#btnPost')。单击(函数(){
警报(“btnPost”);
变量loginModelObj={
用户名:“UsernameValue”,
密码:“PasswordValue”,
角色:“角色价值”,
};
var registerModelLobj={
名称:“名称值”,
身份证号码:1
};
变量SendObject={
loginModel:loginModelObj,//loginModel与model中的名称相同
registerModel:registerModelObj,//registerModel与model中的名称相同
}
$.ajax({
方法:“POST”,
url:“/Test/SubmitMethod”,
contentType:'应用程序/json',//将数据类型发送到服务器
dataType:'json',//从服务器返回数据的类型
数据:JSON.stringify(SendObject),
//答:错,
成功:功能(数据、状态、xhr){
//在这里做事
},
错误:函数(响应、状态、xhr){
警报(response.statusText);
}
})
})
})

使用ajax.begin表单,这将是最简单的处理方法。非常感谢!成功了!你救了我;)(y) 很高兴,它帮助了你:)