将Json数据中的项目用作文本

时间:2017-02-20 15:59:08

标签: jquery json asp.net-mvc

我从实体框架存储过程中撤回了一些数据,并希望页面迭代整个集合并将值分配给不同的div元素。

我在页面上看到了这个:

(在下面尝试了两种不同的方式 - KValueText2 / 3是查询中返回的列标题)

var KId2 = $('#Selector :selected').val()
        $.get("/Home/getValTitles", { HeadID: KId2 }, function (data) {
            for (var idx in data.result) {
                var results = data.results[idx];
                $('#ValueText1').html(results(0));
                $('#ValueText2').text = results(idx).KValueText2;
                $('#ValueText3').text = results(idx).KValueText3;
            }
        }) 

......并在控制器上:

public JsonResult getValTitles(string HeadID)
        {
            var temp2 = et.usp_Read_K_Value_Titles(HeadID);
            return Json(temp2, JsonRequestBehavior.AllowGet);
        }

如何将返回数据中的每个项目分配给页面上的其他元素?

返回JSON数据:

[
  {
    "KValueText1":"Calls",
    "KValueText2":"Total",
    "KValueText3":‌​null
  }
]

2 个答案:

答案 0 :(得分:0)

由于idx是循环变量,它将包含当前正在循环中处理的json数组元素

因此你可以使用

          $('#ValueText2').text = idx.KValueText2;
            $('#ValueText3').text = idx.KValueText3;

获取列KValueText2,KValueText3

的值

答案 1 :(得分:0)

您的示例数据是一个包含一个元素的数组,该元素是一个对象。这有点奇怪的结构,因为从您的代码看起来您​​只对这一个对象感兴趣(因为您将值直接分配给特定元素)。无论如何,这里是如何阅读它:

var KId2 = $('#Selector :selected').val()
$.get("/Home/getValTitles", { HeadID: KId2 }, function (data) {
   $('#ValueText1').html(data[0].KValueText1);
   $('#ValueText2').text(data[0].KValueText2);
   $('#ValueText3').text(data[0].KValueText3);
}) 

N.B。如果您可以将返回值更改为单个对象而不是数组,则可以删除每行上的[0]并直接访问属性。 ([0]用于访问数组的第一个索引。您也可以使用for循环,但由于您只有一个元素,因此它没有意义。)