WebMethod错误

时间:2011-10-21 09:00:32

标签: c# asp.net jquery

当使用jquery调用此服务器端函数时,我收到“NetworkError:500 Internal Server Error - http://localhost:5963/default.aspx/Call

<html>
    <head>
        <script src="scripts/jquery-1.2.6-vsdoc.js" type="text/javascript"></script>
        <script type="text/javascript">
            $(document).ready(function () {
                $("#btn").click(function () {
                    $.ajax({
                        type: "POST",`enter code here`
                        url: "default.aspx/Call",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        async: true,
                        dataType: "json",
                        success: function (msg) {
                            alert("sdsd");
                        }
                    });
                });
            });

        </script>
    </head>
    <body>
        <form id="form1" runat="server">
            <asp:RadioButton  runat="server" ID="btn" Text="A" />
        </form>
    </body>
</html>

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static void Call(string value)
{
    var x = value;
}

3 个答案:

答案 0 :(得分:3)

首先,这个脚本不会返回任何内容,因为您使用的是服务器控件的错误ID。呈现服务器控件时,它的id更改。 尝试使用:

$("#<%=btn.ClientID %>")

你还有另外一个问题。您正在调用重载的Web方法,因此您需要传递一些数据:

data: "{'value': 'somevalue'}",

希望这会有所帮助。

答案 1 :(得分:1)

此路径scripts/jquery-1.2.6-vsdoc.js是否为您提供了正确的jQuery文件?看起来您正在尝试将vsdoc文件作为普通库加载。

答案 2 :(得分:1)

您需要做的第一件事是使用FireBug控制台。这将告诉你错误是什么。

但是您的代码无效,因为您的返回类型为void。您实际上需要将某些内容返回给客户端。将其更改为:

[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string Call(string value)
{
    var x = value;
    return x; // Silly example
}