初始页面加载后,Javascript无法调用WebMethod

时间:2019-03-06 15:38:12

标签: javascript asp.net webmethod

我对javascript和ASP.NET相对较新。我试图在按下按钮时通过javascript中的PageMethods从网页调用C#函数。

最初加载页面时,按一下按钮似乎不会调用WebMethod。以下是典型的事件顺序:

第一次按下按钮-执行了javascript,但未调用WebMethod(或至少看起来没有运行)

第二次按下按钮-执行javascript并运行WebMethod(插入SQL条目)。但是,我在网页上没有收到响应消息-以下代码段中的警报均未生成。

按下第三个按钮-执行javascript,WebMethod运行并返回成功。

随后的按钮按下-与第三次按钮按下

以上事件序列不是100%可重复的。有时,我会在第二次点击时收到一条成功消息。我有几次在第二次点击中收到失败2消息的实例。第一次单击的行为似乎是完全可重复的。另外,在第二次或第三次点击以及随后的所有点击之后,它也总是可以正常工作。

我已经在其他站点中搜索了几个小时,试图了解我做错了什么,但还没有找到。任何建议都将受到欢迎!

代码段如下:

    [WebMethod(EnableSession=true)]
    public static string UpdateAuditDB()
    {
        //SQL command removed...
        return "success";
    }

<script type="text/javascript">
        function audit_button() {
            PageMethods.UpdateAuditDB(onSuccess, onFailure);
        }

        function onSuccess(result) {
            if (result == "success") {                   
                alert('Success');
            }
            else {
                alert('Failure message 1');
            }

        }

        function onFailure(result) {
            alert('Failure message 2');
        }

</script>
<asp:ScriptManager ID="ScriptManager1"
  runat="server"
  EnablePageMethods="true"
  ScriptMode="Release"
  LoadScriptsBeforeUI="true">
</asp:ScriptManager>


<input class="inlineButtons" tabindex="40" title="auditButton" id="auditButton" type="submit" value="Audit" onclick="audit_button();" />

0 个答案:

没有答案