2017-05-04 15 views
0

私はasp.net mvc webアプリケーションで作業しています。私はユーザーに関する情報を登録するためのフォームを持っています。保存アクションはボタンをクリックすると書かれます。そして私は複数のモデルをコントローラに渡そうとしています。しかし、コントローラでは、null.How私はこの問題を解決する方法があります。私はいくつかのソリューションを試してみました。ここでAjaxのポストアクションコールを複数のモデルをコントローラに渡す

は私の例である - PLSチェック:

を私は親モデルを持っている:

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"); 
} 

PLSのヘルプ

+0

使用ajax.begin形、それ私はその作業が私の側を微

アクションメソッド、あなたのコードをテストしています最も簡単な方法で対処します。 – TechVision

答えて

0

あなたの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> 
+0

ありがとう!出来た !あなたは私を救った;)(y) – bepositive

+0

嬉しい、それはあなたを助けた:) –

関連する問題