对C#方法的AJAX调用没有返回数据

对C#方法的AJAX调用没有返回数据,c#,jquery,C#,Jquery,我正在调用以下C#方法: 我在C#方法上有一个断点,它击中了它。逐步执行该方法,函数工作正常,在我的用户中,创建了一个计数为2的列表。但是如果没有返回到客户机,则返回此列表。有什么想法吗?也许ReadUserStructure不可序列化 您是否在chrome inspector或firebug中看到了控制台输出,因为这通常有助于解决这些问题 ReadUserStructure可序列化吗 请尝试列出您知道应该可以工作的对象,如整数或字符串。如果我没有错,如果您返回的是json结果,则需要说明您返回

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


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

也许ReadUserStructure不可序列化


您是否在chrome inspector或firebug中看到了控制台输出,因为这通常有助于解决这些问题

ReadUserStructure可序列化吗


请尝试列出您知道应该可以工作的对象,如整数或字符串。

如果我没有错,如果您返回的是json结果,则需要说明您返回的是json
不确定语法,但服务器应该指定我正在返回一个json结果。问题是列表在javascript中没有Count属性。相反,请查找
msg.length

警报之前放置一个
调试器
,在firebug或IE或Visual Studio中进行调试。检查您是否正在接收对象
msg
。如果是,请使用
msg.Length
而不是
msg.Count
,否则请添加错误处理程序并检查错误

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

希望这能帮助所有提到序列化问题的人。我现在使用的是asp.net Ajax扩展,对于我想要做的事情来说非常好而且简单


感谢大家的时间和努力。

msg.Count.toString()
Awesome,显示了[object]。所以我想msg是一个列表?约翰·吉布有一个正确的想法。C#中的
列表将降级为Javascript中的数组。在chrome中,使用ctrl-shift-i(mac上的cmd-opt-i)打开inspector,然后切换到网络选项卡。然后,重新加载页面并导致ajax调用发生。您将能够非常清楚地检查结果,并了解接下来会发生什么;用户名是ReadUserStructure的属性。但是这个循环被跳过了(在firebug中)。你能解释一下你所说的可序列化是什么意思吗?维基百科说:“在计算机科学中,在数据存储和传输的上下文中,序列化是将数据结构或对象状态转换为可存储格式的过程(例如,在文件或内存缓冲区中,或通过网络连接链路传输)和“恢复”,但在这种情况下,这意味着它可以作为JSON传输。我将创建一个Viewmodel(一个简单的类,包含视图所需的所有数据的属性)并使用AutoMapper之类的东西在ReadUserStructure中填充数据。首先可能创建ViewModel,创建几个用测试数据填充的实例,并将它们放在列表中。然后从webmethod发送过来,看看这是否是问题所在。
$.ajax({
    type: "POST",
    url: "Main.aspx/LoadFriends",
    data: "{}",
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (msg) { alert(msg.Count.toString()); }
});
 success: function (msg) {
     debugger; 
     alert(msg.Length.toString()); 
 },
 error: function (data) {
 }