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

标签 javascript c# arrays

我有一个 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 %>'

我希望能够循环遍历打印机设置中的三个数组来建立行项目。

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

我可以打印出位置,但每个数组的值显示为“System.String[]”。我读过的大多数主题都令人困惑,显示数组被加载为 'var myarray("apples", "oranges", "peaches")。我还看到过有关序列化数组的主题,但这也不清楚。 任何有关如何完成我所展示的内容的示例将不胜感激。 谢谢 查尔斯

最佳答案

发生这种情况是因为 Razor(或您的 veiw 引擎)正在调用 ToString()被注入(inject)到 View 脚本中的对象的方法。

使用字符串数组类型,会产生您所看到的内容: System.String[] .

由于 javascript 变量需要 JSON 格式的对象来实例化变量,因此您可以简单地将数组序列化为 JSON,如下所示:

var getPayType = <%= Newtonsoft.Json.JsonConvert.SerializeObject(PayType) %>;

关于javascript - 将数组从代码隐藏例程传递到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41336486/

相关文章:

c# 十六进制字符串到字节图像和过滤

c# - 查找数字数组中丢失的元素

javascript - 将值写入 div 时出现 insideHTML 问题

javascript - 当元素相互包含时如何在元素上获取 jquery onClick 事件

javascript - 尝试扩展 jQuery

c# - 是否可以访问另一个进程地址空间以到达特定对象实例?

javascript - 检查 javascript 和 angularjs 中有多少个数组的长度大于 0

c# - Parallel.For 循环 - 为每个线程分配唯一的数据实体

javascript - 检查数组是否具有另一个数组的键值对

javascript - 根据匹配的属性合并两个对象数组