2009-07-24 3 views
10

jQuery에서 getJSON 메서드를 사용하여 ASP.NET 웹 폼 페이지에서 메서드를 호출하려면 어떻게해야합니까? 이 값은 ASP.NET 웹 양식에서 jQuery의 getJSON 메서드 사용

  • 차 웁니다 JSON
  • 을 사용하여 포맷
  • 서버 물건의 관련 목록으로 응답하는 서버로 전송됩니다
  • 목록 항목에

    1. 사용자가 클릭 :

      목표는 이것이다 상자

    저는 UpdatePanel을 사용하고 싶지 않습니다. ASP.NET MVC Framework를 사용하여이 작업을 수백 번 수행했습니다. 그러나 Web Forms을 사용하여 그것을 알아낼 수는 없습니다!

    지금까지 서버를 호출하는 것을 포함하여 모든 작업을 수행 할 수 있지만 올바른 방법은 호출하지 않습니다.

    감사합니다,
    Kieron

    일부 코드 :

    jQuery(document).ready(function() { 
        jQuery("#<%= AreaListBox.ClientID %>").click(function() { 
         updateRegions(jQuery(this).val()); 
        }); 
    }); 
    
    function updateRegions(areaId) { 
        jQuery.getJSON('/Locations.aspx/GetRegions', 
         { areaId: areaId }, 
         function (data, textStatus) { 
          debugger; 
         }); 
    } 
    
  • 답변

    24

    여기에 희망은 시작해야 할 최소한의 예입니다

    <%@ Page Language="C#" %> 
    <%@ Import Namespace="System.Web.Services" %> 
    
    <script runat="server"> 
        [WebMethod] 
        public static string GetRegions(int areaId) 
        { 
         return "Foo " + areaId; 
        } 
    </script> 
    
    <!DOCTYPE html> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
        <title>jQuery and page methods</title> 
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> 
    </head> 
    <body> 
        <script type="text/javascript"> 
        $(function() { 
         var areaId = 42; 
         $.ajax({ 
          type: "POST", 
          url: "Default.aspx/GetRegions", 
          data: "{areaId:" + areaId + "}", 
          contentType: "application/json; charset=utf-8", 
          dataType: "json", 
          success: function(data) { 
           alert(data.d); 
          } 
         }); 
        }); 
        </script> 
    </body> 
    </html> 
    
    0

    나는 코드 조금 불통. ClientID의 서버 측 출력을 updateRegions 메소드에 전달하여 전달했습니다. 그리고 getJSON 메소드가 URL에서 별도의 데이터 대신 쿼리 문자열 매개 변수와 콜백 함수를 전달하도록 변경되었습니다.

    jQuery(document).ready(function() { 
        jQuery("#<%= AreaListBox.ClientID %>").click(function() { 
         updateRegions(<%= AreaListBox.ClientID %>); 
        }); 
    }); 
    
    function updateRegions(areaId) { 
        jQuery("h2").html("AreaId:" + areaId); 
    
        jQuery.getJSON("/Locations.aspx/GetRegions?" + areaId, 
         function (data, textStatus) { 
          debugger; 
         }); 
    } 
    

    작동하는지 알려주세요.

    0

    당신은 또한해서 getJSON를 사용할 수 있지만이 경우에서의 WebMethod를 변경해야합니다.

    [WebMethod(EnableSession = true)]  
    [ScriptMethod(UseHttpGet =false, ResponseFormat = ResponseFormat.Json)] 
    

    당신이 원하는 것이 아닐 수도 GET을 수행 : 당신은으로 장식한다.

    관련 문제