Запрос AJAX не может найти WebMethod в файле с выделенным кодом - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть файл aspx, который при загрузке страницы должен использовать ajax для вызова веб-метода из моего файла code-behind, который получает данные из базы данных MySql для отображения на странице. Проблема в том, что когда страница загружается и вызывается функция javascript, содержащая запрос ajax, я получаю следующую ошибку:

Неизвестный веб-метод PopulateUsersList.
Имя параметра: methodName

Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении: System.ArgumentException: неизвестный веб-метод PopulateUsersList.
Имя параметра: methodName

Я не уверен, почему это происходит, когда у меня есть другие запросы AJAX, которые я использую по всей странице, и они все прекрасно работают. Вот код для функции, содержащей запрос ajax:

function loadUsersList(active) {
    $.ajax({
        type: 'POST',
        url: 'ManagerPopup.aspx/PopulateUsersList',
        dataType: 'json',
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify({ active: active }),
        beforeSend: function () {
            console.log('loading users list...');
        },
        success: function(result){
            $('#userListDiv').empty();
            $('#userListDiv').append(result.d);
            $('#userListTable').DataTable({
                "lengthChange": false,
                "pageLength": 13,
                "order": [[ 1, "asc" ]]
            });
            $('#userListTable tbody').on('click', 'tr', function () {
                var tableData = $(this).children("td").map(function () {
                    return $(this).text();
                }).get();

                var id = $.trim(tableData[0]);
                var email = $.trim(tableData[2]);
                var phone = $.trim(tableData[3]);
                var active = $.trim(tableData[4]);

                getUserSpecifics(id, email, phone, active);
            })
        },
        error: function (ex) {
            console.log('error loading user list');
            console.log(ex.responseText);
        }
    });
}

А вот веб-метод, которого он пытается достичь:

[WebMethod]
    public static string PopulateUsersList(bool active)
    {
        ArrayList userList = new ArrayList();
        Query query = new Query();
        StringBuilder userListHTML2 = new StringBuilder();
        string userListHTML = "" +
            "<table runat=\"server\" id=\"userListTable\" class=\"table table-striped table-bordered table-hover\">" +
                "<thead>" +
                    "<tr>" +
                        "<th>User ID</th>" +
                        "<th>Name</th>" +
                        "<th>E-Mail</th>" +
                        "<th>Phone</th>" +
                        "<th>IsActive</th>" +
                    "</tr>" +
                "</thead>" +
                "<tbody>";           
        switch (active)
        {
            case true:
                userList = query.GetUserList(true);
                break;
            case false:
                userList = query.GetUserList(false);
                break;
        }
        foreach (User user in userList)
        {
            userListHTML2.Append(string.Format(@"
            <tr>
                <td>{0}</td>
                <td>{1}</td>
                <td>{2}</td>
                <td>{3}</td>
                <td>{4}</td>
            </tr>", user.userID, user.displayName, user.email, user.phone, user.isActive));
        }
        string userListHTML3 = "" +
                "</tbody>" +
            "</table>";
        string finalHTML = userListHTML + userListHTML2 + userListHTML3;
        return finalHTML;
    }

ПРИМЕЧАНИЕ: HTML-код, возвращаемый из WebMethod, каким-то образом попадает на страницу, хотя и говорит, что сам метод не может быть найден.

Я уже пытался удалить статический из WebMethod.

Любая помощь будет принята с благодарностью!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...