未调用页面方法
本文关键字:方法 调用 | 更新日期: 2023-09-27 17:57:12
我设置了一个页面方法,并尝试通过jQuery调用它。有时我到达成功函数,有时进入错误函数,对我来说似乎是随机的。在任何情况下,响应都包含整个页面标记。
我尝试使用$.ajax
和ScriptManager
,结果相同。我也在这里尝试了这个想法:用jQuery调用 ASP.NET PageMethod/WebMethod - 返回整个页面,什么都不返回。
下面是 JavaScript 代码:
$(document).ready(function() {
$(".tree").dynatree({
onActivate: function(node) {
$('#title').val(node.data.title);
$.ajax({
type: "POST",
url: window.location.href + "/GetData",
data: "{'ID':22}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(response) { alert(response); },
error: function() { alert('Error!'); }
});
}
});
});
下面是 c# 代码:
[WebMethod]
public static string GetData(string ID)
{
if (string.IsNullOrEmpty(ID))
throw new Exception("No ID passed!");
return "Test";
}
编辑:好吧,我让它工作了。我将参数类型从 int 更改为字符串,现在调用了该方法。我可以做 int。稍后解析,但为什么会发生这种情况?
正在发生的事情是,在 jQuery 调用中将数据设置为{}
相当于将其设置为 NULL
的 JSON。在这种情况下,没有接受 null 的 Web 方法,并且调用失败。
我在当前的应用程序中正在做一些非常相似的事情,我可以看到的唯一区别是我在 ajax 调用中有以下额外选项:
beforeSend: function(xhr) { xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }
希望有帮助...