将数组从代码隐藏例程传递到javascript

将数组从代码隐藏例程传递到javascript,javascript,c#,arrays,Javascript,C#,Arrays,我有一个C#代码隐藏的过程,它从数据库中的几个字段中读取值,并将每个字段放入自己的一维数组中。现在,我需要将这些值传递给客户端,以便在热敏打印机上打印出来。 在我的代码背后,我有: Public String[] PayType = new string[DetailLines]; Public String[] PayQuantity = new string[DetailLines]; Public String[] PayAmount = n

我有一个C#代码隐藏的过程,它从数据库中的几个字段中读取值,并将每个字段放入自己的一维数组中。现在,我需要将这些值传递给客户端,以便在热敏打印机上打印出来。
在我的代码背后,我有:

        Public String[] PayType = new string[DetailLines];
        Public String[] PayQuantity = new string[DetailLines];
        Public String[] PayAmount = new string[DetailLines]'
        Public String Location;

       Protected Void PrintReceipt()
       *Miscellaneous code down to this point not shown.* 
        **DetailLines comes from record count**
       Location = "CA";
       PayType = new string[DetailLines];
       PayQuantity = new string[DetailLines];
       PayAmount = new string[DetailLines]'
        foreach (DataRow row in dtPOSdetail.Rows)
        {
           PayType[LineNumber] = row["fldDescription"].ToString();
           PayQuantity[LineNumber] = row["fldQuantity"].ToString();
           PayAmount[LineNumber] = string.Format("{0:C}",
           Decimal.Parse(row["fldAmount"].ToString()));
           LineNumber++;
         }
在我的JavaScript中,我有:

var getLocation = '<%= Location %>'
var getPayType =  '<%= PayType %>'
var getPayQuantity = '<%= PayQuntity %>'
var getAmount = '<%= PayAmount %>'
var getLocation=''
var getPayType=“”
var getPayQuantity=“”
var getAmount=''
我希望能够在打印机设置中通过三个阵列进行循环,以建立行项目

request += builder.createTextElement({ data: "Location: " + GetLocation + "\\n" });
for (int i = 0; i < PayType.Length; i++)
{
   request += builder.createTextElement({ data: PayType[i] + "\\x9" + PayQuantity[i] + "\\x9" + "     " + PayAmount[i] + "\\n"});
}
request+=builder.createTextElement({data:“Location:”+GetLocation+“\\n});
for(int i=0;i
我可以打印出位置,但每个数组的值都显示为“System.String[]。我在这方面读到的大多数主题都很混乱,显示数组被加载为“var myarray”(“apples”、“oranges”、“peaches”)。我也看到过关于序列化数组的话题,但这也不清楚。 任何关于如何实现我所展示的目标的例子都将不胜感激。 谢谢
Charles

发生这种情况是因为Razor(或您的veiw引擎)正在调用注入视图脚本的对象的
ToString()
方法

对于字符串数组类型,这将生成您看到的内容:
System.String[]

由于javascript变量需要一个JSON格式的对象来实例化变量,您只需将数组序列化为JSON,如下所示:


var getPayType=

谢谢!这正是我所期待的。希望通过我的陈述和你简洁的回答,这能帮助其他人。