我有一个简单的页面方法示例。但它没有被调用。 GetDate()函数的断点永远不会被命中,并且始终显示警告为&#39; 失败< /强>&#39 ;. aspx页面是:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default13.aspx.cs" Inherits="Default13" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript" language="javascript" >
function btnTest_onclick() {
PageMethods.GetDate(Success, Failure);
}
function Success(data) {
alert("success");
alert(data);
}
function Failure(data) {
alert("failure");
alert(data.toSource());
}
</script>
</head>
<body >
<form id="form1" runat="server" method="post">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="true" ScriptMode="Debug" >
</asp:ScriptManager>
<%--<input type="button" id="btnSave" value="Save" onclick="btnTest_onclick" />--%>
<asp:Button id="btnSave" runat="server" Text="Save" OnClientClick="btnTest_onclick()"/>
</div>
</form>
</body>
</html>
和aspx.cs页面是:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Services;
public partial class Default13 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
[System.Web.Services.WebMethod]
[System.Web.Script.Services.ScriptMethod]
public static string GetDate()
{
return "str";
}
}
有什么建议吗?
先谢谢,
答案 0 :(得分:0)
我认为问题是因为您的按钮是服务器端控件,建议您从html按钮调用PageMethod
。
仍然如果您需要这样做,请尝试使用以下代码。
<asp:Button id="btnSave" runat="server" Text="Save" OnClientClick="btnTest_onclick(); return false;"/>