编程语言
首页 > 编程语言> > c#-获取通过JSON从Controller作为Hashtable接收的javascript中的对象属性值

c#-获取通过JSON从Controller作为Hashtable接收的javascript中的对象属性值

作者:互联网

我在这里阅读了一些主题,如何从对象获取属性值.

就我而言,我在Controller中有一些东西:

[HttpPost]
public ActionResult GetSomething() {

return Json( new {
     data = AModel.Get()
     }, JsonRequestBehavior.AllowGet );

}

在模型中:

public static List<Hashtable> Get() {
    List<Hashtable> list = new List<Hashtable>( 0 );
    Hashtable table = new Hashtable();
    table.Add( "ITEM_1", "Value1" );
    table.Add( "ITEM_2", "Value 32" );
    list.Add( table );

    table = new Hashtable();
    table.Add( "ITEM_1", "Value22" );
    table.Add( "ITEM_2", "Other" );
    list.Add( table );

   return list;
}

而在Javascript中:

var test;
 $.ajax({
    type: "post",
    url: "Action/Controller",
    data: {},
    dataType: "json",
    async: false,
    success: function (data) {
            test = data.data;
         },
    complete: function () {
            console.log(test);              
 });

我进入控制台,如下图所示:

我想获取属性ITEM_1的值并将结果显示给我:Value1,Value22.

我尝试过

for(var key in test) {
console.log(test[key].ITEM_1);
//console.log(test[key].ITEM1);
}

但它不起作用.

当然,我将ITEM_1键重命名为ITEM1(在模型中),但结果相同:未定义,但在控制台中,我看到了所有对象的值.

请帮帮我.

解决方法:

测试是一个数组,而不是一个对象.遍历数组,如:

var testLength = test.length;            //caching length, performance benefit
    i, item1;

for(i=0;i<testLength;i++){
    item1 = test[i].Properties.ITEM1;
}

标签:javascript,c,jquery,asp-net-mvc-3
来源: https://codeday.me/bug/20191201/2080243.html