Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Ajax调用返回描述对象而不是对象的字符串_C#_Jquery_Ajax_Asp.net Mvc - Fatal编程技术网

C# 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',

我在ASP.NET中运行C#with MVC,我得到了一个ajax调用,该调用应该返回对象的
列表
,但它只是返回字符串
“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-可能不需要使用手动序列化。但是,这里没有足够的信息来了解情况是否如此。