我知道这个问题可能已被问过数百次,并且有大量的例子,可能我可能会被投票,但我不得不问它,因为我不知道在哪一方面(控制器,脚本)或两者)我的代码是不正确的还有b / c我找不到关于如何将对象转换为二维数组的例子(我相信结果是这样的):我需要传递一个List>从MVC控制器回到ajax脚本,然后操纵数组结果,但我不知道如何转换数组来读取它的元素。
[HttpGet]
public ActionResult ListBoxCustomize(string listName)
{
var result = new List<KeyValuePair<string, string>>(); // Key , Value
// Code to add items to the list
.........
return Json(new { items = result }, JsonRequestBehavior.AllowGet);
}
JScript
$.ajax(
{
success: function (data) // THIS IS WHAT IS RETURNED -> data = Object {items: Array[5]}
{
alert( items[0][0] ) // Reference Error: items is not defined
OR
alert( data[0][0] ) // Uncaught TypeError: Cannot read property "0" of undefined
.... and so it goes with all other cast and combinations that I've tried.
}
答案 0 :(得分:1)
在您的javascript中,您的参数名为data
,但您的提醒已通过items
。如果你alert(items[0][0])
会怎么样?或者在浏览器的开发工具中闯入调试器并查看对象结构?另一种选择是使用Fiddler之类的工具来查看返回的实际响应;一旦你看到电线上的数据,通常很容易在客户端上处理它。