Asp.net ajax pagemethods无法正常工作

时间:2012-01-17 21:45:49

标签: asp.net ajax pagemethods

我有一个最初没有使用ajax的项目。现在我想启用页面ajax。我已经做的是安装ajaxToolkit并将web.config内容替换为启用了ajax的网站中的另一个内容。我添加了脚本管理器:

<form id="Form1"  runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" />

.cs文件中的方法如下所示

[WebMethod]
public static string[] CheckRating(string[] details)
{
    string[] result = new string[] { "AAAAAAAAAAA", "" };
    return result;
}

我的java脚本函数是:

 function someName() {

        var details = new Array();
        details[0] = $("#HiddenFieldUsername").val();
        details[1] = "5310005003117";
        PageMethods.CheckRating(details, ss1, ss2);
    }
    function ss1(result, userContext, methodName)
    {
        $("#user_rating").show();
        $("#user_rating_text").html("Error User ratinh");
        alert("Sorry");
    }
    function ss2(error, userContext, methodName) {
        $("#user_rating").show();
        $("#user_rating_text").html("Error User ratinh");
        alert("Sorry");
    }

问题在于它何时到达:PageMethods.CheckRating(details,ss1,ss2); 什么都没发生。 ss1或ss2中的代码都没有执行... java脚本只是停止工作。

1 个答案:

答案 0 :(得分:1)

很奇怪,以下webform对我来说非常合适:

<%@ Page Language="C#" %>
<%@ Import Namespace="System.Web.Services" %>
<script type="text/C#" runat="server">
    [WebMethod]
    public static string[] CheckRating(string[] details)
    {
        string[] result = new string[] { "AAAAAAAAAAA", "" };
        return result;
    }
</script>
<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <form id="Form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePageMethods="True" EnableScriptGlobalization="True" />
    </form>

    <script type="text/javascript">
        var details = new Array();
        details[0] = 'foo';
        details[1] = 'bar';
        PageMethods.CheckRating(details, ss1, ss2);

        function ss1(result, userContext, methodName) {
            alert(result[0]);
        }
        function ss2(error, userContext, methodName) {
            alert("Error");
        }
    </script>
</body>
</html>

也许您可以使用一个javascript调试工具(如FireBug)来确切了解封面下发生的情况以及正在发送的实际AJAX请求以及响应。