简单的jquery回调适用于.net3.5,但在.net 2.0上什么都没有触发?

时间:2010-04-09 12:02:37

标签: c# asp.net jquery

我在客户端上有以下jquery回发方法

<%@ 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>

以及服务器端的以下Web方法

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事件根本没有接到电话,任何人都知道我做错了什么?

感谢

使用完整源代码更新

1 个答案:

答案 0 :(得分:0)

它适用于我使用以下属性声明web方法:

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

我也使用PageMethods.GetAvailableTicketsForMales从js。

调用该函数

我希望这会对你有所帮助。