2013-04-11 2 views
-1
내 서비스에서 하나의 응용 프로그램을 개발하고

내가 aparam 같은 배열을 보낼 수 있고,이Sencha 2에서 Post 메서드를 사용하여 인수를 배열로 보내는 방법은 무엇입니까?

[OperationContract] 
[WebInvoke(Method = "POST", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "/Check1")] 
int Psngr(string[] FirstName); 

서비스 정의와 같은

Ext.Ajax.request({ 
    method: 'POST', 
    contentType: 'application/json; charset=utf-8;', 
    type: 'json', 
    url: 'http:/....', 
    disableCaching: false, 
    headers: { 
     'Accept': 'application/json', 
      'Content-Type': 'application/json' 
    }, 

    jsonData: { 
     FirstName: local_fname_array2, 

    }, 


    success: function (response) { 
     console.log(response); 
    } 

}); 

그리고 서비스

.... :

public static int Psngr(string[] FirstName) { 
    List <Psgr> psgr = new List <Psgr>(); 
    var getVal = from s in FirstName select s; 
    int count = getVal.Count(); 

    SqlConnection con = new SqlConnection(WebConfigurationManager.ConnectionStrings["db"].ToString()); 
    con.Open(); 

    using(var cmd = new SqlCommand("SP_InsertCheck1", con)) { 
     int result; 
     cmd.CommandType = CommandType.StoredProcedure; 

     for (int i = 0; i < count; i++) { 
      cmd.Parameters.Clear(); 
      cmd.Parameters.AddWithValue("@FirstName", FirstName[i]); 
      using(var Da = new SqlDataAdapter(cmd)) 

      using(var Ds = new DataSet()) { 
       Da.Fill(Ds); 
       result = Convert.ToInt16(Ds.Tables[0].Rows[0]["Result"].ToString()); 

      } 


     } 

     return 1; 
    } 
} 

하지만 오류가 발생했습니다 ....

서버가 요청을 처리하는 중 오류가 발생했습니다. 예외 메시지는 다음과 같습니다. '매개 변수를 역 직렬화하려고 시도하는 중 오류가 발생했습니다. 이름 : 메시지를 deserialize하려고 시도하는 동안 포맷터에서 예외가 발생했습니다. InnerException 메시지가 'Expecting state'Element '입니다. 이름이 '네임 스페이스'인 '텍스트'가 발생했습니다. '. 자세한 내용은 InnerException을 참조하십시오. '. 자세한 내용은 서버 로그를 참조하십시오. 예외 스택 추적은 다음과 같습니다

답변

0

아마 당신은 당신의 배열 데이터 이전 서버로 전송 인코딩해야한다, 이런 STH :

Ext.encode (the_array)

0

당신은 배열

을 디코딩해야
jsonData: { 
    trvlrTitle:Ext.decode(local_prefix_array) 
} 

나중에는 보낼 수 있습니다

Ext.Ajax.request({ 
    url:'http://aa.com, 
    method:'POST', 
    disableCaching: false, 
    headers: { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json' 
    }, 
    jsonData: { 
     trvlrTitle:Ext.decode(local_prefix_array) 
    } 
}); 
관련 문제