【问题标题】:Passing JSON value to Web Method returns 'Unknown web method DoesUserExist. Parameter name: methodName' error将 JSON 值传递给 Web 方法会返回“未知的 Web 方法 DoesUserExist。参数名称:methodName'错误
【发布时间】:2012-03-31 12:55:25
【问题描述】:

嗨,这是我的 javascript:

<script type="text/javascript">
    $(document).ready(function () {
        function validateEmail(email) {
            var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
            if (!emailReg.test(email)) {
                return false;
            } else {
                return true;
            }
        }

        $("#coreContent_mainContent_txtEmail").blur(function () {
            var email = $("#coreContent_mainContent_txtEmail").val();

            if (!validateEmail(email)) {
                $("#coreContent_mainContent_errorIconEmail").css("display", "block !important").fadeIn(200);
                $("#coreContent_mainContent_txtEmail").css("-webkit-box-shadow", "0 0 0 1px #2D2D2D, 0 0 0 2px #FF0000 !important").fadeIn(200);
                $("#coreContent_mainContent_txtEmail").val('');
            } else {
                $.ajax({
                    type: "POST",
                    url: "/Sign-Up.aspx/DoesUserExist",
                    data: "{'email': '" + email + "'}",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (msg) {
                        if (msg == "false") {
                            alert("Email Does Not Exist!");  
                        } else {
                            alert("Email Exist!");
                            $(this).css("display", "block !important").fadeIn(200);
                            $(this).css("-webkit-box-shadow", "0 0 0 1px #2D2D2D, 0 0 0 2px #FF0000 !important").fadeIn(200);
                            $(this).val = "";
                        }
                    }
                });
            }

        });
    });
</script> 

现在在 ajax 帖子中它给了我这个错误“未知的 web 方法 DoesUserExist. 参数名称:methodName' 但是在我的同一页面后面的代码中,即 Sign-Up.aspx 方法“DoesUserExist”实际上存在,这是代码:

[WebMethod]
    public static bool DoesUserExist(string email)
    {
        return false;
    }

现在出于测试目的,我只在上述方法中返回 false。然而,问题仍然存在,即 ajax 调用无法找到 webmethod。关于如何解决这个问题的任何想法?

【问题讨论】:

    标签: c# jquery ajax json


    【解决方案1】:

    尝试添加 [ScriptMethod] DoesUserExist:

    [WebMethod]
    [ScriptMethod]
    public static bool DoesUserExist(string email)
    {
        return false;
    }
    

    【讨论】:

    • 我试过了,同样的错误出现'未知的网络方法 initEmailAuthentication.参数名称:methodName 说明:当前web请求执行过程中发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。异常详细信息:System.ArgumentException:未知的 Web 方法 initEmailAuthentication。参数名称:methodName'
    【解决方案2】:

    确保您的 AJAX 帖子中的 URL 正确,我不确定您的层次结构,但可能不需要前导斜杠。在这里设置测试页面的好文章:http://encosia.com/using-jquery-to-directly-call-aspnet-ajax-page-methods/

    【讨论】:

      【解决方案3】:

      我遇到了同样的问题。要修复它,您应该确保:

      • 在您的代码中,您的方法应该是静态的,并在其顶部添加注释 [WebMethod]

      [WebMethod] public static bool DoesUserExist(string email) { return false; }

      • 在 jquery 代码中,确保您传递给 data 选项的参数应该与您的参数方法名称匹配。它必须与您的方法签名相匹配。

        数据:“{'email':'”+电子邮件+“'}”,

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-03-12
        • 2014-01-11
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多