【问题标题】:create an array in javascript using the C# arrays in Asp使用 Asp 中的 C# 数组在 javascript 中创建一个数组
【发布时间】:2013-04-03 16:45:11
【问题描述】:

我正在尝试使用 JavaScript 访问在 aspx 文件后面的 C# 代码中初始化的数组。我的数组如下所示:

arr[0]="IE 7.0,IE 8.0";
arr[1]="chrome 23.0";

我想在 javascript 中访问这个数组,然后使用以下方法将每个数组(即 arr[0])转换为一个新数组:

var Browsers=new Array();
Browsers=arr[0].split(',');

谁能帮我做这件事?

提前致谢!

【问题讨论】:

  • 你是用scriptmanager把内容推到前面的吗?
  • 另一种方法是您也可以在 aspx 页面中包含一个 JS 文件。

标签: c# javascript arrays webforms


【解决方案1】:

您可以将 C# 数组转换为 JavaScript 格式并在页面上分配值。

// C#
var arr = new string[]{ "IE 7.0,IE 8.0", "chrome 23.0" };
var serializer = new JavaScriptSerializer();
var jsArray =
    arr.Select(s => s.Split(','))
       .Select(serializer.Serialize);

<!-- JS -->
<script>
    var browsers = <%= jsArray[0] %>;

</script>

【讨论】:

    【解决方案2】:

    使用JavaScriptSerializer从你的数组中获取json字符串;

    string serial = new JavaScriptSerializer().Serialize(arr);
    

    然后使用任何首选技术将此字符串呈现给客户端; 例如将它插入到 aspx 中:

    <script type="text/javascript">
       var myclientarr = JSON.parse('<%= serial %>');
    </script>
    

    其他选项是使用脚本管理器或创建将返回您的数据的 ashx,然后在页面中引用它。

    【讨论】:

      【解决方案3】:

      试试下面的方法会对你有所帮助...

      背后的代码: 在代码隐藏中声明一个公共变量,如下所示...

      public partial class Default : System.Web.UI.Page
      {
          public string[]  arr ={"IE 7.0,IE 8.0","chrome 23.0"};
      

      Javascript:

       <script>
          var IEarray = '<%=arr[0] %>'.split(',');
          for (i = 0; i < IEarray.length; i++)
              alert(IEarray[i]);
      
          var Chromearray = '<%=arr[1] %>'.split(',');
          for (i = 0; i < Chromearray.length; i++)
              alert(Chromearray[i]);           
      </script>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-07-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-10
        • 2018-12-18
        • 2018-03-12
        • 2017-05-16
        相关资源
        最近更新 更多