无法访问Json对象的属性/值-显示未定义

时间:2019-07-10 20:34:01

标签: javascript jquery

我有一个表,试图从单击的行中将值获取到模式框中。我的数据正在返回到视图,但是在访问对象的属性值时遇到问题。

这是我的货币代码
脚本

$('.item-list tr td').click(function () {
    var clickedRow = $(this).closest("tr").find('td:eq(5)').text();

    $.ajax({
        "url": "/ActivityType/Details",
        "type": "POST",
        "dataType": "JSON",
        "data": { aActivityID: clickedRow },
        "success": function (data) {
            //var thisData = JSON.parse(data);
            console.log(data);

            console.log(data.activityName);                
            console.log(data["activityName"]);
            console.log(data['activityName']);

            document.getElementById("ActivityName").value = data[0].activityName;
            showAjaxModal();
        }
    });
});

控制器

public IActionResult Details(System.Guid aActivityID)
    {
        if (aActivityID != System.Guid.Empty)
        {
            t_activitytype aActivity = new t_activitytype();
            aActivity = db.t_activitytype.Where(a => a.Guid == aActivityID).First();

            return Json(new { data = aActivity });
        }
        return View();
    }

console.log(data);显示我的对象及其属性值 enter image description here

此时尝试访问属性的以下行将返回“ undefined”

console.log(data.activityName); console.log(data["activityName"]); console.log(data['activityName']);

enter image description here

1 个答案:

答案 0 :(得分:1)

控制器在数据本身中包含一个data属性。您实际上可以在控制台中看到该添加data。因此,您最好在服务器端删除该额外的层。

代替

return Json(new { data = aActivity }); 

只要

return Json(aActivity)