如何在JS中注册List <string>并迭代它?</string>

时间:2011-09-02 22:29:15

标签: c# javascript asp.net json

我在ASP.net中写了一些代码: 代码背后:

public string Locations { get; set; }
public List<string> Categories { get; set; }
public List<string> Hrefs { get; set; }
public string CategoriesJ { get; set; }
public string HrefsJ { get; set; }

...
    this.CategoriesJ = new JavaScriptSerializer().Serialize(Categories);
    this.HrefsJ = new JavaScriptSerializer().Serialize(Categories);
标记中的

JS:

 <script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
 <script type="text/javascript">
       var Categories = jQuery.parseJSON(this.CategoriesJ);
        var Hrefs = jQuery.parseJSON(this.HrefsJ);
function onInit(){
    alert(Categories[0]);
};
</script> 

可以使用索引就是这样的Json var吗? 这是正确的写作方式吗?

那我为什么不看警报呢? var等于的代码:[“restaurant”,“restaurant”] 我收到错误:Uncaught TypeError:无法读取null

的属性'0'

2 个答案:

答案 0 :(得分:2)

是的,这是正确的。要遍历所有值,请使用:

for(var x=0;x<Categories.length;x++) {
     alert(Categories[x]);
}

答案 1 :(得分:0)

您不能像这样在ASPX中引用服务器端变量。在ASP.NET中,您需要:

<script type="text/javascript" src="Scripts/jquery-1.4.1.js"></script>
<script type="text/javascript">
   var Categories = <%= CategoriesJ %>;
   var Hrefs = <%= HrefsJ %>;
function onInit(){
    alert(Categories[0]);
};
</script>