如何从ASP:NET将数组传递给jQuery?

时间:2014-07-14 14:47:53

标签: javascript jquery asp.net arrays

我正在使用ASP.NET并且有一个字符串数组,我想将此数组传递给jQuery。我怎么能这样做?

我尝试过以下但是没有用。我已经记录了我的数组,它已满,所以数组不是问题。

    <script>
        var imagesSrc = '<%=images%>';
        for (var i = 0; i < imagesSrc.length; i++) {
            document.getElementById("image" + ((i + 1).toString())).src = "images/" + imagesSrc[i] + ".jpg";
        }
    </script>

我已经为我的元素增加了数字ID,因此它们与选择器"image" + ((i + 1).toString())"

匹配

如果我使用它,最后一件事就可以了。

    document.getElementById("image" + ((i + 1).toString())).src = "images/" + "muppets" + ".jpg";

3 个答案:

答案 0 :(得分:1)

在图像服务器端变量中使用逗号分隔值。例如,您要使用的图像名称是image1,image2 ... imageN然后使用

受保护的字符串图像=&#34; image1,image2 ... imageN&#34 ;; // c#代码隐藏

并且在javascript代码中使用split函数来分割逗号分隔值,比如

 <script>
        var imagesSrc = '<%=images%>'.split(",");
        for (var i = 0; i < imagesSrc.length; i++) {
            document.getElementById("image" + ((i + 1).toString())).src = "images/" + imagesSrc[i] + ".jpg";
        }
    </script>

你准备好了。 享受编码,如果它解决了你的问题,请将其标记为答案。

答案 1 :(得分:0)

尝试在JavaScript中对列表字符串进行硬编码。如果它仍然中断,问题不是数组,而是其他东西

例如,您可能在元素存在之前执行getElementById ..在这种情况下,此代码需要包装在“on ready ready”事件中。或者,页面上可能存在javascript错误正在停止执行。

答案 2 :(得分:0)

我认为你不能直接从你的代码隐藏传递数组到有效的javascript。如何将数组分配给分隔的字符串,然后使用split()在javascript中创建数组。

这样的事情:

<强>代码隐藏:

public partial class TestPage: System.Web.UI.Page
{
    public string MyCSV { get; set; }

    protected void Page_Load(object sender, EventArgs e)
    {    
         string csv = "";
         foreach (var itm in myarray) //array created elsewhere
         {
             csv = csv + loc + ",";
         }
         MyCSV = csv.Substring(0, csv.Length - 1); //trailing comma
    }
}

<强> ASPX:

<script type="text/javascript">
  var csvstring = '<%= MyCSV %>';
  var csvArray = csvstring.split(',');
  //do stuff with array
</script>