2010-04-09 1 views
1

나는 클라이언트간단한 jquery 콜백은 .net3.5에서 작동하지만 .net 2.0에서는 아무 것도 발생하지 않습니까?

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CallServerWithParameters.aspx.cs" Inherits="CallServerWithParameters" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 

    <script src="jquery-1.2.6.js" type="text/javascript"></script> 
      <script language="javascript"> 
      $(document).ready(function() { 
       $("#txtNoOfMales").change(function() { 
        var ticketRequired = this.value; 
        var options = { 
         type: "POST", 
         url: "CallServerWithParameters.aspx/GetAvailableTicketsForMales", 
         data: "{no:" + ticketRequired + "}", 
         contentType: "application/json; charset=utf-8", 
         dataType: "json", 
         success: function(response) { 
          if (response.d != "") { 
           alert(response.d); 
           $("#txtNoOfMales").focus(); 
          } 
         } 
        }; 
        //Call the PageMethods 
        $.ajax(options); 

       }); 

      }); 
     </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    No of Male Tickets:<asp:TextBox ID="txtNoOfMales" runat="server"></asp:TextBox> 
    </div> 
    </form> 
</body> 
</html> 

에서 다음 JQuery와 게시 방법과

using System; 
using System.Collections.Generic; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Web.Services; 

public partial class CallServerWithParameters : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 

    } 
    [WebMethod] 
    public static string GetAvailableTicketsForMales(int no) 
    { 
     string result = ""; 
     int NoOfTicketsAvailable = 5; 
     if (no > NoOfTicketsAvailable) 
     { 
      result = "Only " + NoOfTicketsAvailable.ToString() + " Male ticket(s) avaialable. Please eneter a lower number!"; 
     } 
     return result; 
    } 

} 

문제가 모든 .NET 3.5에서 잘 작동하지만입니다 서버 측에서 다음 웹 메소드가 내가 같은를 사용하는 경우 코드에 .net 2.0 webmethod 이벤트가 전혀 전화를받지 않습니다, 아무도 내가 뭘 잘못했는지 전혀 몰라?

덕분에 전체 소스 코드

+0

이 웹 메서드가있는 전체 클래스의 샘플을 제공 할 수 있습니까? 그것은 조금 더 높을지도 모르다 그래서 맞을 것으로 보인다. –

+0

AJAX에는 3.0으로 구현 된 WCF가 필요하지 않습니까? –

+0

Marvin : 매개 변수를 사용하지 않고 webmethod를 호출하여 위의 코드를 테스트했으며 .net2.0에서 제대로 작동합니다. 매개 변수를 포함하기 시작할 때 작동하지 않습니다. Tim : 세부 코드로 편집하고 업데이트합니다. 감사합니다. – CliffC

답변

0

그것은 내 다음과 같은 속성을 가진 웹 메소드를 선언 작동으로 업데이트

:

[System.Web.Services.WebMethod] 
    [System.Web.Script.Services.ScriptMethod] 

또한 내가 JS에서 함수를 호출 할 PageMethods.GetAvailableTicketsForMales를 사용합니다.

이 정보가 도움이되기를 바랍니다.

관련 문제