2016-05-24 5 views
1

私はこことGoogleのすべての可能な質問を終えました。役に立つものが見つからなかったか、それに応じてコードを変更する方法がわからないかもしれません。 JQueryの新機能以下の私のコードを見てください。複数のjsonオブジェクトをAjaxポスティングで渡して、連絡先に同じものを渡す方法

フォームには、マスターエントリと詳細エントリがあります。ここで、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; 
    } 

次のように私のコントローラコード:

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

以下のように今私は、コントローラにこれらのマスターとディテールの値を渡す必要がありますされています。詳細については、コンマ区切りの値をコントローラに渡しています。それはエラーを表示していない、ブレークポイントも動作しています。

コントローラメソッドでは、オブジェクトの値をnullとして取得しています。なぜそれができますか?

答えて

4

   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 
       } 
      }); 
+0

コントローラが同じになります。この方法で試してみてください? – Monibrata

+1

はい....コントローラに変更はありません...このコードを試してみてください&私に知らせてください –

+0

ありがとうございます!!それは今働いている! :) – Monibrata

関連する問題