控制器返回列表时如何从jquery每个循环中获取值

时间:2018-11-10 17:55:44

标签: java jquery ajax model-view-controller

我有列表并从控制器返回,我试图使用jquery每个循环功能在mvc视图中显示。我可以到达列表并发送到视图,但是当jquery循环开始时我无法获取索引和值。控制台和源,值在那里。

这是我的控制器代码

  public JsonResult electric()
    {

        int id = Convert.ToInt32(Session["id"]);
        string cs = "data source=LNPC;initial catalog=db;integrated security=True;multipleactiveresultsets=True;application name=EntityFramework";
        SqlConnection connection = new SqlConnection(cs);

        SqlCommand command = new SqlCommand("electrcic_bills", connection);
        command.CommandType = System.Data.CommandType.StoredProcedure;
        command.Parameters.AddWithValue("@id", id);
        connection.Open();
        SqlDataReader reader = command.ExecuteReader();

        List<analiz> TestList = new List<analiz>();
         analiz electric;

        while (reader.Read())
        {
            electric= new analiz();
            electric.jan= Convert.ToDouble(reader["jan"].ToString());
            electric.feb= Convert.ToDouble(reader["feb"].ToString());
            electric.march= Convert.ToDouble(reader["march"].ToString());
            electric.april = Convert.ToDouble(reader["april"].ToString());
            TestList.Add(electric);

        }

        return Json(new { List = TestList }, JsonRequestBehavior.AllowGet);
    }

jQuery代码

           $("#electric").click(function () {

           $("canvas#myCharts").remove();
           $("#canvas1").append('<canvas id="myCharts" width="200" height="200"></canvas>');
           $.ajax({
               type: "GET",
               url: "/MainController/electric",

               dataType: "json",
               success: function (List) {

                   var data = List.List;
                   $.each(data, function (index, value) {
                       alert(data);
                   });

               },
           });
       });

使用这种方法无法获得价值,但是当我像这样编写electric.push(List.List [0] .jan._bills_electric)时,我可以手动获得价值。

这是我的浏览器源代码

本地列表:列表:数组(1) 0: jan_bills:空 jan_bills_electric:135 dec_bills:空 dec_bills_electric:60

3 个答案:

答案 0 :(得分:0)

您在List语句中使用return Json()一词。这对于Java可能是模棱两可的。 尝试将其他名称与驼峰式字体一起使用以解决此问题。

答案 1 :(得分:0)

在您的Javascript中,尝试使用

var data = List["List"];

代替

var data = List.List;

答案 2 :(得分:0)

Okey,我找到了答案,我错了。 首先-我的控制器没有错 第二,在每个循环函数中,我的数组不仅是array,它是OBJECT中的数组。我发现了this link并尝试了每个循环中的每个循环,我从jquery循环中得到了项目。

var json = [ 
 { 'red': '#f00' },
 { 'green': '#0f0' },
 { 'blue': '#00f' }
];

$.each(json, function () {
   $.each(this, function (name, value) {
      console.log(name + '=' + value);
   });
});