Asp.net页面方法没有被调用

时间:2014-04-10 07:34:43

标签: asp.net-4.0 webmethod pagemethods

我有一个简单的页面方法示例。但它没有被调用。 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";
    }
}

有什么建议吗?

先谢谢,

1 个答案:

答案 0 :(得分:0)

我认为问题是因为您的按钮是服务器端控件,建议您从html按钮调用PageMethod

仍然如果您需要这样做,请尝试使用以下代码。

<asp:Button id="btnSave" runat="server" Text="Save" OnClientClick="btnTest_onclick(); return false;"/>