C# 未调用页面方法

C# 未调用页面方法,c#,.net,asp.net,jquery,C#,.net,Asp.net,Jquery,我设置了一个page方法,并试图通过jQuery调用它。有时我得到成功函数,有时得到错误函数,在我看来是随机的。在任何情况下,响应都包含整个页面标记 我试着使用$.ajax和ScriptManager,结果相同。 我也尝试过这个想法:什么也没有 以下是JavaScript代码: $(document).ready(function() { $(".tree").dynatree({ onActivate: function(node) { $('#

我设置了一个page方法,并试图通过jQuery调用它。有时我得到成功函数,有时得到错误函数,在我看来是随机的。在任何情况下,响应都包含整个页面标记

我试着使用
$.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的方法。一旦我拆下开关,一切都开始工作了。非常感谢。啊,这是有道理的。很高兴能帮上忙。