AJAX调用C#方法不返回数据

时间:2012-01-12 16:08:39

标签: c# jquery

我正在调用以下C#方法:

[WebMethod(true)]
public static List<ReadUserStructure> LoadFriends()
{        
    List<ReadUserStructure> returner = Friend.ReadAllFriends();        
    return returner;
}

使用以下jQuery:

$.ajax({
    type: "POST",
    url: "Main.aspx/LoadFriends",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) { alert(msg.Count.toString()); }
});

我在C#方法上有一个断点,它就可以了。单步执行该方法,该函数工作正常,并在我的用户中创建一个计数为2的列表。但是这个列表如果没有返回到客户端。有什么想法吗?

6 个答案:

答案 0 :(得分:2)

问题是列表在javascript中没有Count属性。相反,请查找msg.length

答案 1 :(得分:1)

debugger之前加alert,在firebug或IE或Visual Studio中调试。检查您是否收到对象msg。如果是,请使用msg.Length而不是msg.Count,否则添加错误处理程序,并检查错误。

 success: function (msg) {
     debugger; 
     alert(msg.Length.toString()); 
 },
 error: function (data) {
 }

希望这有帮助

答案 2 :(得分:0)

也许ReadUserStructure不可序列化?

您是否在Chrome检查器或firebug中看到了控制台输出,因为这些问题在这些问题上非常有用。

答案 3 :(得分:0)

ReadUserStructure是否可序列化?

尝试使用您知道应该工作的对象列表,例如整数或字符串。

答案 4 :(得分:0)

如果你没有错,如果你要返回json结果你需要提到你正在返回一个json 不确定语法,但服务器应该指定我返回一个json结果

答案 5 :(得分:0)

提及序列化的每个人都是问题所在。我现在正在使用asp.net Ajax扩展,这对我想做的事情非常好而且容易。

感谢大家的时间和精力。