C# 未调用页面方法
我设置了一个page方法,并试图通过jQuery调用它。有时我得到成功函数,有时得到错误函数,在我看来是随机的。在任何情况下,响应都包含整个页面标记 我试着使用C# 未调用页面方法,c#,.net,asp.net,jquery,C#,.net,Asp.net,Jquery,我设置了一个page方法,并试图通过jQuery调用它。有时我得到成功函数,有时得到错误函数,在我看来是随机的。在任何情况下,响应都包含整个页面标记 我试着使用$.ajax和ScriptManager,结果相同。 我也尝试过这个想法:什么也没有 以下是JavaScript代码: $(document).ready(function() { $(".tree").dynatree({ onActivate: function(node) { $('#
$.ajax
和ScriptManager
,结果相同。
我也尝试过这个想法:什么也没有
以下是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代码:
编辑:我让它工作了。我将参数类型从int更改为string,现在调用该方法。我可以稍后再进行int.Parse,但为什么会发生这种情况呢?发生的事情是,在jQuery调用中将数据设置为
{}
,这与将其设置为NULL
相当。在这种情况下,没有接受null的webmethod,调用失败。发生的事情是,在jQuery调用中将数据设置为{}
,这与将其设置为null
相当。在这种情况下,没有接受null的webmethod,调用失败。我在当前的应用程序中做了一些非常类似的事情,我能看到的唯一区别是我在ajax调用中有以下额外选项:
beforeSend: function(xhr) { xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }
希望这能有所帮助……我在当前的应用程序中做了一些非常类似的事情,我能看到的唯一区别是我在ajax调用中有以下额外选项:
beforeSend: function(xhr) { xhr.setRequestHeader("Content-type", "application/json; charset=utf-8"); }
希望这有助于…当您使用生成的客户端代理时,它是否工作(即PageMethods.GetData(…)?)@dfowler-Nope。相同的结果。您是否路由或任何可能会弄乱url的内容?当您使用生成的客户端代理时,它是否工作(即PageMethods.GetData(…)?@dfowler-Nope。同样的结果。你有没有路由或任何可能会弄乱url的东西?对不起。我用正确的版本(带参数)更新了帖子。你的回答为我指明了正确的方向。之前我有:data:“{'ID':'22'}”,所以asp.net正在寻找一个参数类型为string的方法。一旦我拆下开关,一切都开始工作了。非常感谢。啊,这是有道理的。很高兴能帮上忙。对不起。我用正确的版本(带参数)更新了帖子。你的回答为我指明了正确的方向。之前我有:data:“{'ID':'22'}”,所以asp.net正在寻找一个参数类型为string的方法。一旦我拆下开关,一切都开始工作了。非常感谢。啊,这是有道理的。很高兴能帮上忙。