使用c#代码动态创建javascript数组

fla*_*404 5 javascript c# asp.net serialization

我正在将旧的经典ASP站点更新为新的.net 3.5版本.该页面有一个自定义列表控件,客户端(我的老板)想要保留.此列表控件需要多个数组才能正常工作.该数组是一个多维的出版物清单.这就是它的样子:

var publicationTable = [
    [31422,"Abilene Reporter News","Abilene","TX",false,"D",0],
    [313844,"Acadiana Weekly","Opelousas","LA",false,"W",1],
    [527825,"Action Advertiser","Fond du Lac","WI",false,"W",2]...n]
Run Code Online (Sandbox Code Playgroud)

我想生成这个阵列服务器端并注册它.我看过msdn,但这有点小事.概念问题是数组是字符串和整数的混合,我不知道如何重新创建它,那么如何?

Edg*_*ado 16

你应该做这个:

代码背后:

using System.Web.Script.Serialization;
...
public string getJson(){
   var publicationTable = new List<object>{
      new []{ 31422,"Abilene Reporter News","Abilene","TX",false,"D",0},
      new []{ 313844,"Acadiana Weekly","Opelousas","LA",false,"W",1 },
      new []{ 527825,"Action Advertiser","Fond du Lac","WI",false,"W",2}
   };
   return (new JavaScriptSerializer()).Serialize(publicationTable);
}
Run Code Online (Sandbox Code Playgroud)

你知道,为了创建一个混合类型的数组,我们创建了一个匿名类型的数组new [].你也可以这样做new object[].

Aspx文件:

<script>
    var publicationTable = <%= getJson() %>;
</script>
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.干杯


Bal*_*a R 0

这行得通吗?

ArrayList list = new ArrayList{31422,"Abilene Reporter News","Abilene","TX",false,"D",0};

var str = string.Format("[{0}]", list.Cast<object>().Select(x => (x is string)?
          string.Format(@"""{0}""", x) : x.ToString())
          .Aggregate((x, y) => string.Format("{0}, {1}", x, y)));
Run Code Online (Sandbox Code Playgroud)

它可以以类似的方式扩展到多维数组。