Почему, когда я пытаюсь получить доступ к значению входного тега runat = "server" из исходного кода, я получаю исходное значение вместо последнего значения? - PullRequest
0 голосов
/ 13 июля 2020

У меня есть скрытый ввод, содержащий значение одноразового номера, используемого для обработки платежей.

<input id="nonce" runat="server" clientidmode="Static" />

При первой загрузке страницы значение, вызываемое со стороны сервера, очевидно пустая строка. Но есть кнопка, которая обновляет значение этого ввода с помощью соответствующего одноразового номера:

button.addEventListener('click', function () {
              instance.requestPaymentMethod(function (err, payload) {
                  if (err) {
                      console.log('Error', err);
                      return;
                  }
                  document.querySelector('#nonce').value = payload.nonce;
                  nextPrev(1);
              });
          });

После того, как кнопка нажата и событие запускается, значение одноразового номера изменяется. Используя инструменты проверки, я обнаружил, что после нажатия кнопки разметка выглядит следующим образом:

<input name="nonce" type="hidden" id="nonce" value="tokencc_bf_z22pd4_9nm74f_sgg8nz_dgmwvy_qc5">

Это то, что я ожидал.

Проблема в том, что при нажатии другой кнопки вызывается функция на стороне сервера, которая использует это значение одноразового номера, одноразовый номер выглядит пустым из бэкэнда:

var paymentMethodRequest = new PaymentMethodRequest
            {
                CustomerId = Client.User.BrainTreeCustomerID,
                PaymentMethodNonce = nonce.Value
            };

nonce.Value - это пустая строка. Даже если непосредственно ПЕРЕД нажатием кнопки на стороне сервера значение не пустое и равно "tokencc_bf_z22pd4_9nm74f_sgg8nz_dgmwvy_qc5", как в примере на два блока кода.

Кто-нибудь знает, что здесь происходит?

...