【问题标题】:Ajax Post return type instead of value c# mvc 4Ajax Post返回类型而不是值c#mvc 4
【发布时间】:2012-10-30 10:03:12
【问题描述】:

我有这个问题。

我的功能是这样的

$.ajax({
            type: "POST",
            url: "/controller/CreateList",
            contentType: "application/json; charset=utf-8",
            traditional: true,
            data: JSON.stringify(myvar),
            success: function (returnArray) {
            }
.....

在我的控制器中我有这个动作:

public int[] CreateList(List<ERoleCommission> erolecommission){
        List<int> intList= new List<int>();
        ...//populate the List
        return  intList.ToArray();
}

通过调试,我看到 intList 填充了正确的值,所以这不是 c# 错误, 从控制器调用此操作后,调试返回 js 函数和 returnArray = "System.Int32[]",它只包含类型。 为什么? 谢谢

【问题讨论】:

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


    【解决方案1】:

    没有看到你的控制器/动作,我只是猜测,但我的第一个猜测是你忘记在将数据作为 ActionResult 从你的动作返回之前对数据进行 JSON 编码。在你的行动中尝试这样的事情:

    public JsonResult YourAction() {
        // ... do stuff
        var yourArrayOfData = CreateList(yourListOfData);
        return Json(yourArrayOfData);
    }
    

    【讨论】:

    • 是的,这是正确的答案,所以当我尝试传递非原始类型时,我需要将其编码为 json 类型?
    • @NinoEmma 没错,您需要从您的操作中返回一个JsonResult,然后调用Json() 将获取您的数组并将其转换为您可以返回的JsonResult。跨度>
    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2013-03-20
    • 2015-01-05
    • 2015-11-27
    • 2017-10-06
    • 1970-01-01
    相关资源
    最近更新 更多