Ajax调用返回字符串描述对象而不是对象

时间:2015-07-24 16:12:54

标签: c# jquery ajax asp.net-mvc

我在ASP.NET中使用MVC运行C#,我有一个ajax调用,它应该返回一个list个对象,但它只返回字符串"System.Collections.Generic.List`1[Namespace.CustomObject]"

显然,数据会回到javascript,并且返回List<int>并不会改变任何重要的数据,因此对象没有错。我在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
    }

1 个答案:

答案 0 :(得分:0)

在C#中,您需要返回一个JSON对象而不是List。我过去做过这样的事情:

    public JsonResult myFunc()
    {
        ..... code here .....


        return Json(myList);
    }

编辑:   有时很高兴看到在发送之前发回的确切内容。实现此目的的一种方法是将返回对象分配给变量,然后返回变量。

    public JsonResult myFunc()
    {
        ..... code here .....

        var x = Json(myList);
        return x;
    }

这完全相同,但稍微容易调试。