Asp.net ajax методы страницы не работают - PullRequest
1 голос
/ 18 января 2012

У меня есть проект, который изначально не использовал 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 Ответ

1 голос
/ 18 января 2012

Странно, следующая веб-форма прекрасно работает для меня:

<%@ 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,отправлено так же как и ответ.

...