2010-06-21 8 views
2

aspx 3.5에서 연락처 양식을 작성하고 jQuery를 사용하여 웹 서비스 (asmx)로 보냅니다.

웹 서비스가 성공 또는 오류 코드를 반환해야합니다. 문제는 웹 메서드에서 배열이 아니라 단일 값을 얻는다는 것입니다. 나는 아약스에서 좀 새로운 것이지만 많은 결과를 얻지는 못했지만 많은 해결책을 시도했습니다. 당신이 나에게 무엇을해야하는지의 원칙을 설명 할 수만 있다면 또한 좋을 것입니다. 불을 지르고 자사을에서json 데이터를 asmx (aspx에서) jquery를 사용하여 보내는 방법?

$(document).ready(function() 
{ 
    $("#submit").click(function(event) 
    { 
     $.ajax 
     ({ 
      type: "POST", 
      url: "RVContactFormMailer.asmx/HelloToYou",     
      data: "{'name': '" + $('#name').val() + "', 'company':'" + $('#company').val() + "', 'phone':'" + $('#phone').val() + "', 'email':'" + $('#email').val() + "', 'questions':'" + $('#questions').val() + "'}" ,     
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function(msg) { 
      AjaxSucceeded(msg); 
     }, error: AjaxFailed 
     }); 
    }); 

가 제대로 전송 :

는 클라이언트 쪽

{'name': 'jhon', 'company':'example', 'phone':'123', 'email':'[email protected]', 'questions':'hello'} 

ASMX 코드 (그 예 이름을 무시하십시오입니다 :

[WebService(Namespace = "http://tempuri.org/")] 
    [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 
    [ScriptService] // To allow this Web Service to be called from script, using ASP.NET AJAX or JQuery. 
    [ToolboxItem(false)] 
    public class RVContactFormMailer : System.Web.Services.WebService 
    { 
     [WebMethod] 
     [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
     public string HelloToYou(string name) 
     { 
      return "Hello " + name; 
     } 
    } 

을 내가 디버깅 할 때 입력 매개 변수 "이름"이 하나의 문자열 만 포함되어 있음을 알 수 있습니다. 전체 json 문자열 t을 얻는 방법을 모르겠습니다. hat 서비스에 전송하고 모든 양식 데이터가 들어 있습니다. 문자열 배열 등으로 desirialize하고 처리하고 싶습니다. 어떻게 할 수 있습니까?

답변

1

이 문제는 클라이언트 측에 없었다 - - 그것은 서버 측에 있던 문제는 내가 웹 서비스에 몇 가지 매개 변수를 보낼 수 있지만 기능은 하나 얻을 수 있습니다 :

[WebMethod] 
    [ScriptMethod(ResponseFormat = ResponseFormat.Json)] 
    public string HelloToYou(string name) 

올바른 동안 그래야합니다 :

어쨌든, 감사합니다.

+0

OTHER 옵션은 클라이언트 측에서 복잡한 객체를 생성하고 서버에서 복잡성이있는 명명 된 객체로 역 직렬화합니다 단일 서버 측 오브젝트가 전달되도록합니다. –

+0

마크 더 많은 정보/예를 들어 주시거나 일부 기사에 대한 링크를 제공해 주시겠습니까? 덕분에 – eran

+0

나는 정보를 사용합니다 : http://stackoverflow.com/questions/2785441/asp-net-json-web-service-post-form-data 및 json으로 복잡한 개체를 보냅니다. 감사합니다. – eran

0

request.form 컬렉션을 보았습니까? 게시 요청을하고 params를 요청에 대한 데이터로 전달하기 때문에 Request.Form에서 사용할 수 있습니다.

+0

this.Context.Request.Form을 볼 때 비어 있습니다. 웹 서비스로 보낸 json 문자열을 어떻게 얻을 수 있습니까? – eran

+0

괜찮 으면 이름을 올바르게 입력하는 것이 좋습니다. {param : { 'name': 'jhon', 'company': 'example', 'phone': '123', 'email' : '[email protected]', 'questions': 'hello'} } –

관련 문제