如何访问传回AJAX调用的数据?

时间:2016-04-22 18:34:15

标签: javascript jquery ajax asp.net-mvc generic-list

现在我已成功从Ajax调用我的控制器方法(请参阅更新2 here了解详细信息),我的下一步是访问从Ajax成功函数中的Controller方法传回的数据。

在这种情况下,我传回一个jsonified通用的字符串列表(0..N字符串vals)。

如何从嵌入在jquery ajax调用中的成功函数访问它们:

var model = JSON.stringify({ unit: unitval, report: rptval });
$.ajax({
    type: 'GET',
    url: '@Url.Action("GetUnitReportPairEmailAddresses", "UnitReportPair")',
    data: { unit: unitval, report: rptval }, // data: model,
    contentType: 'application/json', //<= this is paired with stringify above; if comment out one, comment out both
    cache: false,
    success: function (result) {
        alert('success');
        alert(result.data);
    },
    error: function () {
        alert('failure');
    }
});

我假设它是通过查询“结果”对象,但是如何?我试过这个:

success: function (result) {
    alert('success');
    alert(result[0]);
},

...但只在“成功”警报后才看到“未定义”警报。一个简单的“警报(结果)”没有显示任何内容,“alert(result.data)”

也是如此

Controller(在测试用例场景中)传回一个字符串,一个电子邮件地址。在“现实生活”中,它将是0..N的电子邮件地址,但是现在它已成功传回一个字符串,但由于某种原因它不是“结果”,或者我没有把它从那里拿出来因为它应该被提取。

更新

好的,现在我们到了某个地方;我在“成功”函数中放置了一个断点,在其“返回的数据”参数上盘旋,并看到:

enter image description here

然而,当我将此代码添加到“成功”回调中时:

success: function (returneddata) {
    alert('success');
    alert(UnitReportPairEmailVals[0]);
},

(将“returndata”替换为“UnitReportPairEmailVals”,这是returndata的值),在步入第二个警报时,我得到了“未捕获的引用错误:'UnitReportPairEmailVals'未定义”

更新2

我将几个不同的答案拼凑在一起后,我写了一个关于如何执行此操作的提示here

1 个答案:

答案 0 :(得分:2)

  

未捕获的参考错误:&#39; UnitReportPairEmailVals&#39;未定义

本身它无法在任何地方定义。它不是变量,它是变量的属性。具体来说,在returneddata。这里的变量基本上与它们在C#中的工作方式相同:

function (returneddata) {
    alert(returneddata.UnitReportPairEmailVals[0]);
}