我有一个aspx文件,在页面加载时,应该使用ajax从我的代码隐藏文件中调用web方法,该文件从MySql数据库获取数据以显示在页面上。问题是,当页面加载并且包含ajax请求的javascript函数被调用时,出现以下错误:
未知的Web方法PopulateUsersList。
参数名称:methodName
描述:在执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪,以获取有关错误及其在代码中起源的更多信息。
异常详细信息:System.ArgumentException:未知的Web方法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;
}
注意:尽管从WebMethod返回的HTML指出无法找到该方法本身,但仍以某种方式使其进入了页面。
我已经尝试过从WebMethod中删除静态对象。
任何帮助将不胜感激!