0

我正在构建一个 Web 应用程序,我试图在 WebForm 中调用一个 WebMethod,我已经尝试了谷歌中的每个页面,但我仍然一无所获。这是 Jquery Ajax 调用的示例

$.ajax({
            type: "Post",
            url: "Default.aspx/Return",
            data: {dato:'Hello'},
            contentType: "application/json; chartset:utf-8",
            dataType: "json",
            success:
                    function (result) {
                        if (result.d) {
                            alert(result.d);
                        }
                    },
            error:
                function (XmlHttpError, error, description) {
                    $("#grdEmpleados").html(XmlHttpError.responseText);
                },
            async: true
        });

这是代码隐藏中的 WebMethod

[WebMethod]
    [ScriptMethod(ResponseFormat=ResponseFormat.Json)]
    public static string Return(string dato)
    {
        return dato;
    }
4

4 回答 4

2

您不能以这种方式访问​​静态方法。删除“静态”引用,它将起作用。另外,就像其他人所说的那样 - 不要将其用作您的方法名称“Return”。

[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string Return(string dato)
{
    return dato;
}
于 2014-03-19T21:58:11.870 回答
0

尝试这个

var url = window.location.pathname + "/Return";
$.ajax({
        type: "Post",
        url: url,
        data: {dato:'Hello'},
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success:
                function (result) {

                        alert(result.d);

                },
        error:
            function (XmlHttpError, error, description) {
                $("#grdEmpleados").html(XmlHttpError.responseText);
            },
        async: true
    });`
于 2013-03-22T17:57:08.093 回答
0

我认为,在您的成功事件中,使用了带有结果的函数,它是一个字符串,并且您正在尝试访问名为 d 的属性,假设结果是一个对象。仅alert(result); 使用 User F12 工具来调试并找到您的错误。

于 2013-03-22T17:48:12.737 回答
0

确保您在 ScriptManager 元素中启用了页面方法:

<asp:ScriptManager ID="scriptManager" runat="server" EnablePageMethods="true" />

和你的方法

$.ajax({
            type: "Post",
            url: '<%= ResolveUrl("~/Default.aspx/Return") %>',
            data: {dato:'Hello'},
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success:
                    function (result) {

                            alert(result);

                    },
            error:
                function (XmlHttpError, error, description) {
                    $("#grdEmpleados").html(XmlHttpError.responseText);
                },
            async: true
        });
于 2013-03-22T17:48:58.147 回答