2016-07-22 4 views
-4

ajax 호출을 사용하여 다음 데이터를 액션에 전달하려고합니다. 내가 뭘 잘못하고 있는지 잘 모르겠지만 클라이언트 ID는 항상 0입니다. 호출에서 클라이언트 ID를 하드 코딩하고 있지만 여전히 0이 표시됩니다. 다른 모든 것은 올바르게 전달됩니다.jquery에서 ajax 호출하기

data: { 
    "BedID": bedID, 
    "BedNumber": bedNumber, 
    "ClientSearchItem": { 
     "ClientID": 160 
    }, 
    "BuildingName": buildingName, 
    "RoomName": roomName, 
    "RoomNumber": roomNumber, 
    "SiteName": siteName 
}, 

// 난 당신의 코드가 작동하게하기 위해 포인트 몇 가지를 제안

$.ajax({ 
     url: myUrl 
     type: "GET", 
     dataType: "JSON", 
     data: { 
      "BedID": bedID, "BedNumber": bedNumber, "ClientSearchItem": { "ClientID": 160 }, "BuildingName": buildingName, 
      "RoomName": roomName, "RoomNumber": roomNumber, "SiteName": siteName 
     }, 
     success: function (data) { 
      // do something here 
     }, 
     error: function (error) { 
      alert("An error occured"); 
     } 
    }); 

public class SearchClient 
    { 
     // parameterless constructor 
     public SearchClient() 
     { 

     } 
     public int BedID { get; set; } 
     public int BedNumber { get; set; } 
     public string BuildingName { get; set;} 
     //public int ClientID { get; set; } 
     public ClientSearchItem ClientSearchItem { get; set; } 
     public bool IsReservation { get; set;} 
     public string RoomName { get; set;} 
     public string RoomNumber { get; set; } 
     public string BedManageOption { get; set; } 

     public string SiteName { get; set;} 
     [Required] 
     public string StartDate { get; set;} 
     public string StartTime { get; set;} 
     public DateTimePicker EndDateTime { get; set;} 
     public string Url { get; set; } 
    } 

public ActionResult _AddClientToBed(SearchClient model) 
     { 
     // do something here 
} 
+0

아약스의 전화를 올릴 수 있습니까? – Skam

+0

@ 다트보기 - 내 게시물을 업데이트했습니다. – user3817538

+1

당신이 그것을 중첩하고 있기 때문에 그것이있을 수 있습니까? 귀하가 우리에게 주신 내용은 [Minimal, Complete, Verifiable] (http://stackoverflow.com/help/mcve) 질문이 아닙니다. 따라서 우리가 당신을 도울 수 없게 만듭니다. – Skam

답변

0

내 아약스 호출.

1) 먼저 contentType : "application/json"을 추가하십시오.

2) 두 번째로, Asp.Net MVC가 양식 내용을 복잡한 오브젝트로 쉽게 해결할 수 있도록 Ajax 요청을 "POST"요청으로 만듭니다. (비록 복잡한 객체를 질의 문자열로부터도 해결해야만한다.). 3) 입력 데이터를 문자열 화하십시오.

아약스 전화는 다음과 같습니다.

 $.ajax({ 
      url: myUrl, 
      type: "POST", 
      data: JSON.stringify({ 
        "BedID": bedID, "BedNumber": bedNumber, "ClientSearchItem": { "ClientID": 160 }, "BuildingName": buildingName, 
        "RoomName": roomName, "RoomNumber": roomNumber, "SiteName": siteName 
      }), 
      contentType: "application/json", 
      success: function (data) { 
       // do something here 
      }, 
      error: function (error) { 
       alert("An error occured"); 
      } 
     }) 

한번 시도해보고 효과가 있는지 확인하십시오.

+0

해결책을 시도했지만 작동하지 않았습니다. 이 솔루션을 사용하면 모델을 검사 할 때 모든 속성이 null 또는 0이됩니다. – user3817538

+0

실제로 작동합니다. 나는 데이터를 주석 처리했다 : contentType으로 바꾸었다 : 당신이 제안한대로 HttpGet을 사용했다. 고맙습니다. 나는 왜 HttpGet doesnt가 ​​작동하는지 궁금해하고있다. 제가하고있는 일은 실제로 얻는 것입니다. – user3817538

+0

아약스가 올바른 데이터를 응용 프로그램에 전달하고 있습니까? 내 말은 값을 올바르게 메소드에 전달했는지 확인하기 위해 피들러 (fiddler) 또는 다른 네트워크 인터셉터 도구를 사용하여 확인 했습니까? 그것은 내 응용 프로그램에서 완벽하게 작동하기 때문입니다. 게시물 요청 만 수락하기 위해 HttpPost를 사용하여 내 액션 메서드를 꾸며 냈습니다. 또한 행동 방법을 공유 할 수도 있습니다. –