Aravindba Ответов: 1

Зачем просить.строка запроса, содержащая старые значения в ASP.NET


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

Итак, как получить текущее значение в строке запроса со стороны сервера ?

Что я уже пробовал:

сторона клиента
function getUrlParameter(name) {
    name = name.replace(/[\[]/, '\\[').replace(/[\]]/, '\\]');
    var regex = new RegExp('[\\?&]' + name + '=([^&#]*)');
    var results = regex.exec(location.search);
    return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' '));
};


дает правильное значение.

Серверный
Dim userName = Request.QueryString("UsrName")  '' return always old vlaue

F-ES Sitecore

Этот параметр, вероятно, все еще находится в url-адресе. Мы не знаем, как вы переходите с одной страницы на другую, и мы не можем получить доступ к вашей системе, но Querystring не "запоминает старые значения", если он возвращает значение для этого параметра, то это потому, что этот параметр находится на текущем url-адресе.

Aravindba

Привет я передаю строку запроса вот так
http://localhost/web/Change.aspx?UsrName=" + имя

если я получу значение запроса sting из Change.aspx клиентская сторона дает правильный результат,
но со стороны сервера извлеките старые значения.

F-ES Sitecore

Ну, это не может быть так, что происходит что - то еще. Откуда вы знаете, что он получает "старые ценности"? Если вы имеете в виду, что содержимое страницы не было изменено для отражения новых данных, то, возможно, вы получаете кэшированную версию страницы.

Aravindba

да, правильно, но как со стороны клиента я получаю новые значения ? только со стороны сервера я получаю старые значения, которые получаю в первый раз.

1 Ответов

Рейтинг:
12

ZurdoDev

Как уже упоминалось в комментариях, строки запросов не запоминаются, поэтому вам нужно отладить свой код и точно выяснить, что он делает.

Когда JavaScript читает строку запроса, это, скорее всего, происходит после загрузки страницы и завершения работы. Например, кто-то заходит на страницу http://site.com/somepage?username=test тогда JavaScript может получить имя пользователя.

Однако у вас есть некоторый код, который Вы нам не показали, который затем вызывает сообщение на другую страницу, и в C# вы пытаетесь получить строку запроса, но кнопка, ссылка или что-то еще, что вызвало загрузку этой страницы, не включает значение в строку запроса.

Вам придется это отладить.


Aravindba

да, при загрузке страницы я пытаюсь получить значение Sting запроса типа Dim userName = Request.QueryString("UsrName") , но он возвращает старое значение, которое получает в первый раз, но если я попытаюсь получить его со стороны клиента, я получу новые значения.
я ставлю запись журнала для writelog(имя пользователя), всегда возвращаю старые значения.

ZurdoDev

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

Aravindba

привет да, он будет перезагружать контент от 2 до 3 раз, так что удалить перезагрузить контент после этого работает нормально, я имею в виду 3 раза он попал на загрузку страницы, но даже 3 раза попал на загрузку страницы, он должен принести только новые значения, но как показать старые значения.
в любом случае спасибо за поддержку

ZurdoDev

Я не могу быть более ясным. Это не приносит старых ценностей. Он показывает именно то, что вы ему сказали.