【问题标题】:How to pass an array from Asp.net to JavaScript如何将数组从 Asp.net 传递到 JavaScript
【发布时间】:2014-12-02 15:57:33
【问题描述】:

我编写这段代码是为了将数组从 asp.net 代码传递给 javascript:

aspx 文件:

<script type="text/javascript">
    var loc_array;
    var loc_array_two;
    function AssignValues(loc, loc_two){
        loc_arary= loc;
        loc_array_two = loc_two;
        alert(loc_array[0]);
    }
</script>

aspx.cs 文件:

StringBuilder sb = new StringBuilder();
sb.Append("var loc = [");
foreach (var str in lb1)   //lb1 is list
{
    sb.Append("['" + str.Value1 + "','" + str.Value2 + "','" + str.Value3 + "'],");
}
sb.Append("];");
StringBuilder sb2 = new StringBuilder();
sb2.Append("var own = [");
foreach (var str2 in lb2)   //lb2 is list
{
    sb2.Append("['" + str2.Value1 + "','" + str2.Value2 + "','" + str2.Value3 + "'],");
}
sb2.Append("];");

if (lb1.Count > 0 && lb2.Count > 0)
{
    string arrayStr1 = string.Format("[{0}]", sb.ToString().TrimEnd('{','}'));
    string arrayStr2 = string.Format("[{0}]", sb.ToString().TrimEnd('{', '}'));
    Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "AssignValues(" + arrayStr1 + "," + arrayStr2 + ")", true);
}

创建的数组是[var loc = [['New York','33.6306686','73.1175653'],];] - 现在这个数组传递给javascript函数。但没有打印。谁能帮我解决这个问题。

【问题讨论】:

  • 你应该更新你的帖子;显示 .cs 文件的整个方法(包括它的名称)。然后你如何从你的 .js 调用这个方法(可能是你的 ajax 调用)。是否曾经调用过 AssignValues(您的 js)?
  • @sander AssignValues 函数在没有参数的情况下工作正常。但是在将数组作为参数传递给这个函数时,它什么也没显示。
  • 请尝试我之前的建议。您也没有传递任何数组,而是传递字符串。您可能想要的是 JSON,而且您很幸运,.NET 有将 JSON 发送到前端的方法! stackoverflow.com/questions/227624/…

标签: javascript c# asp.net arrays


【解决方案1】:

你为什么不用这个表格?

var yourjavascriptArray = <%=new JavaScriptSerializer().Serialize(cSharpArrayName);%>;

【讨论】:

    猜你喜欢
    • 2017-05-07
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多