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

How can I access the data passed back to an AJAX call?

现在我已经成功地从 Ajax 调用了我的控制器方法(具体请参阅更新 2 ),我的下一步是访问从控制器方法传回的数据在 Ajax 成功函数中。

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

如何从 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');
    }
});

我假设是通过查询 "result" 对象,但是如何呢?我试过这个:

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

...但在 "success" 警报之后只看到 "undefined" 警报。一个简单的 "alert(result)" 什么也没显示, "alert(result.data)"

控制器(在测试用例场景中)传回一个字符串,一个电子邮件地址。在 "real life" 用法中,它将是 0..N 个电子邮件地址,但现在它成功传回一个字符串,但由于某种原因它不在 "result" 中,或者我没有得到它应该提取出来。

更新

好的,现在我们有进展了;我在 "success" 函数中放置了一个断点,将鼠标悬停在其 "returneddata" 参数上,然后看到:

然而,当我将此代码添加到 "success" 回调时:

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

(将 "returneddata" 替换为 "UnitReportPairEmailVals",这是 returneddata 的值),在进入第二个警报时我得到了 "Uncaught reference error: 'UnitReportPairEmailVals' is not defined"

更新 2

在我拼凑出几个不同的答案后,我写了一个关于如何做到这一点的提示 here

Uncaught reference error: 'UnitReportPairEmailVals' is not defined

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

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