2011-11-03 4 views
0

I가 다음 코드, 웹 메소드에 매개 변수를 전달하고,이 (가) 결과를 검색하기위한 JQuery와 아약스 :umbraco 템플릿에서 JSON으로 데이터를 얻을

<script type="text/javascript"> 
    $(document).ready(function() { 
     $('#<%=btnSignup.ClientID %>').click(function() { 


      var dataString = JSON.stringify({ 
       firstName: $("#SignupFirstName").val(), 
       lastName: $("#SignupLastName").val(), 
       email: $("#SignupEmail").val(), 
       password: $("#SignupPassword").val() 
      }); 

      $.ajax({ 
       type: "POST", 
       url: "Signup.aspx/Signup", 
       data: dataString, 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       async: true, 
       cache: false, 
       beforeSend: function() { 
        // some code 
       }, 
       success: function (result) { 
        $('#loading').hide(); 

        if (result.hasOwnProperty("d")) { result = result.d; }//and some more code 
       } 
      }); 
      return false; 
     }); 
    }); 
</script> 

및 웹 방법 :

[WebMethod] 
public static SignupOutput Signup(string firstName, string lastName, string email, string password) 
{ 
    // execute some code and return an object for the json 
} 

메서드가 실행되고 있지 않습니다. 멋진 URL을 사용하고 있습니다. 코드를 잘못 작성하면 도움을주세요. 감사합니다. .

+0

독립 실행 형 .cs 코드 숨김, 페이지 (.aspx.cs) 또는 usercontrol (.ascx.cs)이라는 웹 메서드가 선언 된 위치는 어디입니까? –

답변

0

처음에는 클릭 기능 내에 alert을 던지기 만하면됩니다. 실제로는 실제로 맞았는지 확인해야합니다. 그것을 가정하면 ...

/Base에 대해 the documentation을 확인하십시오. 해당 페이지의 오른쪽에있는 링크를 놓치지 않도록주의하십시오.

기본적으로, 나는 당신이해야합니다 생각

독립 클래스로의 WebMethod를 이동하고 [WebMethod] 속성을 제거

...입니다. 또한 과거에 객체를 반환하는 데 어려움을 겪었습니다. 이동해 본 것은 json 형식의 문자열을 만들고 반환하는 것입니다. 그래서 당신이 결국 것이 무엇이 같은 것입니다 :


public class UmbracoWebMethods 
{ 
    public static SignupOutput Signup(string firstName, string lastName, string email, string password) // you may need to change this to public static string 
    { 
     // execute some code and return an object for the json 
    } 
} 
 

는 /presentation/config/restExtensions.config

에 구성을 추가 분명히

<?xml version="1.0" encoding="utf-8"?> 
<RestExtensions> 
    <ext assembly="YourAssembly" type="YourAssembly.UmbracoWebMethods" alias="UmbWebMethods"> 
    <permission method="Signup" allowAll="true" returnXml="false" /> 
    </ext> 
</RestExtensions> 

당신이 일치하는이 약간 조정할 필요합니다 당신의 정확한 어셈블리 이름/네임 스페이스.

ajax 호출을 변경하십시오.


$.get("/Base/UmbWebMethods/Signup/" + $("#SignupFirstName").val()+ "/" + $("#SignupLastName").val()+ "/" + $("#SignupEmail").val() + "/" + $("#SignupPassword").val() + ".aspx", 

이 정보가 도움이되기를 바랍니다. 행운을 빕니다!

관련 문제