我对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();" />