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

本文关键字:对象 字符串 返回 描述 Ajax 调用 | 更新日期: 2023-09-27 18:04:26

我在ASP中运行c#与MVC。. NET,我有一个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
    }

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

在c#中,你需要返回一个JSON对象而不是List。我以前做过这样的事情:

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

        return Json(myList);
    }

编辑:有时在发送之前准确地看到被发送回的内容是很好的。实现此目的的一种方法是将返回对象赋值给一个变量,然后返回该变量。

    public JsonResult myFunc()
    {
        ..... code here .....
        var x = Json(myList);
        return x;
    }

这是完全相同的功能,但更容易调试。