在尝试学习PageMethods时,我遇到了一个特殊的问题。
运行程序时,程序进入错误功能。 Chrome开发者工具显示以下错误:
GET http://localhost:62316/Advertising/WebForm1.aspx/GetCurrentDate ScriptResource.axd:4844
这是我的asp代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type ="text/javascript" src="../Includes/jquery-1.4.2.js"></script>
<script type ="text/javascript">
function call() {
PageMethods.GetCurrentDate(success, fail);
return false;
}
function success(msg) {
alert("Success "+msg);
}
function fail(xhr, status) {
alert("Fail "+xhr.responseText+" "+status);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="Manager" runat="server" EnablePageMethods="true"></asp:ScriptManager>
<asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="javascript: return call();" />
</form>
</body>
</html>
这是C#代码:
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public static string GetCurrentDate()
{
return "foo";
}
错误框中显示的对象分别是undefined和null。此外,通过函数中的断点,可以得出结论,函数永远不会进入。我做错了什么?
答案 0 :(得分:1)
更改以下行
<asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="javascript: return call();" />
作为
<asp:Button ID="test" Text="Get Text" runat="server" OnClientClick="call(); return false;" />
应该有效