У меня есть файл 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.
Любая помощь будет принята с благодарностью!