C# Ajax调用返回描述对象而不是对象的字符串
我在ASP.NET中运行C#with MVC,我得到了一个ajax调用,该调用应该返回对象的C# Ajax调用返回描述对象而不是对象的字符串,c#,jquery,ajax,asp.net-mvc,C#,Jquery,Ajax,Asp.net Mvc,我在ASP.NET中运行C#with MVC,我得到了一个ajax调用,该调用应该返回对象的列表,但它只是返回字符串“System.Collections.Generic.list`1[Namespace.CustomObject]” 显然,数据正在返回javascript,返回的List不会改变任何重要的内容,因此对象没有错。我是否在ajax调用中犯了一个我一直缺少的错误,或者我是否需要使用list 我的ajax调用: $.ajax({ type: 'POST',
列表
,但它只是返回字符串“System.Collections.Generic.list`1[Namespace.CustomObject]”
显然,数据正在返回javascript,返回的List
不会改变任何重要的内容,因此对象没有错。我是否在ajax调用中犯了一个我一直缺少的错误,或者我是否需要使用list
我的ajax调用:
$.ajax({
type: 'POST',
url: url,
data: arrayOfInts
contentType: 'application/json',
datatype: 'json',
success: function (data) {
if (data.length) {
doThisIfDataReturned(data);
} else {
doThisIfNoDataReturned(productIds);
}
}
});
以及它调用的方法:
public List<CustomObject> MakeAList(int[] productIds)
{
//
// create objectList
//
return objectList; //debugger shows that list is correct here
}
公共列表生成列表(int[]productId)
{
//
//创建对象列表
//
return objectList;//调试器在这里显示列表是正确的
}
在C#中,您需要返回一个JSON对象,而不是列表。我过去做过这样的事情:
public JsonResult myFunc()
{
..... code here .....
return Json(myList);
}
编辑:
有时,在发送之前准确地看到正在发送的内容是很好的。实现这一点的一种方法是将返回对象分配给变量,然后返回变量
public JsonResult myFunc()
{
..... code here .....
var x = Json(myList);
return x;
}
这与此完全相同,但调试起来稍微容易一些。您需要一些适当的东西来执行对象的序列化。您在服务器端运行什么?MVC?网络表单?您的请求在多大程度上以
MakeAList
结束?若您从客户机请求json…需要用jsonSomething进行响应,序列化会被忽略。它执行列表的.ToString()表示,而不是返回值的JSON序列化版本。您可以为您的服务显示缩写代码,包括应用于类/方法的任何属性吗?@Rod的可能副本可能不会-根据这里发生的情况,可以有一些非常具体的方法将对象编码为json-可能不需要使用手动序列化。但是,这里没有足够的信息来了解情况是否如此。