Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用c代码动态创建javascript数组_C#_Javascript_Asp.net_Serialization - Fatal编程技术网

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

C# 使用c代码动态创建javascript数组,c#,javascript,asp.net,serialization,C#,Javascript,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],

我正在将旧的经典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]
我想在服务器端生成这个阵列并注册它。我已经看过了,但这有点琐碎。概念上的问题是数组是字符串和整数的混合体,我不知道如何重新创建它,那么如何才能工作呢

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)));
它可以以类似的方式扩展为多维数组。

我认为一个包含您的项目的列表就可以了。考虑到这些数据可能来自更结构化的数据类型,您可能会比List做得更好,但JavaScriptSerializer可能是您所追求的对象。

您应该这样做:

代码隐藏:

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);
}

希望这有帮助。干杯

您需要一个JavaScript变量,其数组与您的C数组完全相同?我建议您不要像这样直接将服务器中的数据注入JavaScript。要么通过某种ajax调用获取此数据,要么直接将其注入HTML并使用javascript逐步增强HTML。如果字符串包含反斜杠、引号或类似内容,则可能会变得混乱。真的需要一个Javascript转义层才能使其防弹。海报上给出的最佳答案显然不打算实现任何种类的rest/json服务。将其与Linq结合起来,可以在需要时在我的MVC视图中更轻松地实现这一点!谢谢
<script>
    var publicationTable = <%= getJson() %>;
</script>