我有列表并从控制器返回,我试图使用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
答案 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);
});
});