#c# #asp.net #query-string
#c# #asp.net #запрос-строка
Вопрос:
У меня иерархическая структура, и когда пользователь нажимает Добавить дочернего элемента, я снова открываю ту же страницу с параметрами [Add, ParentID].
Проблема в том, что после нажатия кнопки Добавить выполняется обратная передача и чтение для строки запроса выполняется снова, потому что строка запроса все та же, и я перехватываю и обрабатываю ее в page_load .
Примечание: я не могу использовать IsPostBack
, потому что вызов выполняется с той же страницы, так что это «всегда true
«.
Любая помощь!
Ответ №1:
Убедитесь, что вы обрабатываете строку запроса только тогда, когда страница не была отправлена обратно, используя IsPostBack
свойство Page
:
if(!IsPostBack)
{
//Process query string
}
Комментарии:
1. @Jack — Если вы вызывали как
Response.Redirect
,IsPostBack
будет false.2. Большое вам спасибо. Я не использовал
Response.Redirect
. Я использовалPostBackURl
, и он не выполнял обратную отправку. Теперь все в порядке. Спасибо.
Ответ №2:
If (!Page.isPostBack) {
//read your query string here
}
Ответ №3:
в событии загрузки страницы или на вашей кнопке нажмите добавить это :
If Not IsPostBack Then
'your code here
End If
C#
if (!IsPostBack) {
//your code here
}
Использование сеанса
if (Session("ok") == 0) {
//some code
Session("ok") = 1;}
это выполнит ваш запрос только при первой загрузке!!!
Комментарии:
1. Это также в VB.NET , где вопрос помечен c #.
2. Вызов выполняется с первой страницы, поэтому
IsPostBack
всегда выполняется true3. затем используйте сеанс для этого
Ответ №4:
в событии загрузки страницы
добавьте этот код и посмотрите, работает ли он
if ((!IsPostBack)amp;amp;(!IsCallBack)) {
//немного кода! }
Ответ №5:
if(!IsPostBack)
{
// Read the query string.
}