开发者

simple jquery callback works on .net3.5 but nothing fires on .net 2.0?

开发者 https://www.devze.com 2022-12-26 10:56 出处:网络
i have the following jquery postback method on the client <%@ Page Language=\"C#\" AutoEventWireup=\"true\" CodeFile=\"CallServerWithParameters.aspx.cs\" Inherits=\"CallServerWithParameters\" %>

i have the following jquery postback method on the client

<%@ 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>
 开发者_如何学C         <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>

and the following web method on the server side

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;
    }

}

problem is everything works fine on .net 3.5 but if i use the same code on .net 2.0 the webmethod event does not get call at all, anybody have any idea what i did wrong?

thanks

updated with full source code


It works for my declaring the web method with the following attributes:

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

Also I use PageMethods.GetAvailableTicketsForMales to call the function from js.

I hope this will help you.

0

精彩评论

暂无评论...
验证码 换一张
取 消