2016-12-26 5 views
1

У меня есть процедура в коде C#, которая считывает значения из нескольких полей в базе данных и помещает их в свой собственный размерный массив. Теперь мне нужно взять эти значения и передать их на клиентскую сторону, чтобы я мог распечатать их на термопринтере.
В моем коде-за меня:Pass Array от кода за рутиной до javascript

 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» («яблоки», «апельсины», «персики»). Я также видел темы, рассказывающие о сериализации массива, но это тоже не ясно. Любые примеры того, как выполнить то, что я показал, будут очень признательны. Благодаря Чарльз

ответ

1

Это происходит потому, что Razor (или ваш Вей двигатель) называет ToString() метод объекта вводится в скрипте вида.

С типом массива типа это дает то, что вы видите: System.String[].

В переменной Javascript ожидает JSON отформатированный объект для создания экземпляра переменных, вы можете просто сериализации в JSON ваш массив как следует:

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

+0

Спасибо! Это именно то, что я ожидал. Надеюсь, что я выложу все, и ваш краткий ответ поможет кому-то другому. – Charles

Смежные вопросы