我有一个包含2个ArrayList属性的对象。
public class TestDTO
{
public ArrayList Test1 { get; set; }
public ArrayList Test2 { get; set; }
}
我在JsonResult Action中将对象作为JSON返回。我的AJAX调用的SUCCESS看起来如下,但它似乎没有工作。从对象访问序列化数组需要做什么?
success: function(data) {
var counter = 1;
jQuery.each(data.Test1, function() {
$("#DataFields" + counter).val(this);
counter++;
});
},
答案 0 :(得分:3)
查看结果的一种方法是在Mozilla中使用Firebug。或者独立的应用程序Fiddler。
我认为该类包装整个对象,所以它应该看起来类似于:
TestDTO {
Test1 [
"value", "value 1", "value 2"
],
Test2 [
"value", "value 1", "value 2"
]
}
如果您想访问Test1,您可以编写TestDTO.Test1。如果你想要Test1中的第一个值,你可以编写TestDTO.Test1 [0]等等......
获得更多输出控制的一种方法是使用LINQ并选择new:
select new {
MyVariable = MyValue,
AnotherVariable = AnotherValue
}
现在您知道“MyVariable”也将是JSON变量名称。
答案 1 :(得分:2)
以下可能有用吗?:
success: function(data) {
$.each(data.Test1, function(i, item) {
$('#DataFields' + i).val(item);
});
}
答案 2 :(得分:1)
当我遇到这样的情况时,我会使用firebug并在success方法中的某个地方打破。然后查看数据的实际结构,我敢打赌它会很明显。