未知的Web方法参数方法名称

时间:2013-03-22 17:43:10

标签: c# asp.net jquery

我正在构建一个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 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:0)

我认为,在你的成功事件中,使用带有结果的函数,这是一个字符串,你试图访问名为d的属性,假设result是一个对象。 仅使用alert(result); 用户F12工具,用于调试和查找错误。

答案 2 :(得分: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
        });

答案 3 :(得分: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
    });`