Как получить данные из адресной строки QueryString ASP.NET ?

Request.QueryString[имя_параметра] — это свойство дает возможность получить данные из адресной строки.

В первую очередь, при работе с GET параметрами, нужно проверить наличие значений при получении запроса. После (если это требуется) проверить тип полученного значения. GET параметры могут быть изменены пользователем в следствии чего, неправильные данные в параметрах могут нарушить работу страницы. (А это повлечет ошибки на стороне сервера, а ваш сайт может подвергнуться атаке злоумышленника.)

protected void Page_Load(object sender, EventArgs e)
        {
            string param = Request.QueryString["param"];

            if (string.IsNullOrEmpty(param))
            {
                Label1.Text = "В адресной строке нет GET параметра с именем <i>param</i>";
            }
            else
            {
                Label1.Text = param;
            }
        }

 

Теперь разместив в конструкторе главной формы один lable и две ссылки с параметрами, и нажав на одну из них. Мы сможем увидеть переданный параметр на сервер.

  <p>
       <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl="~/Default.aspx?param=1">Первая ссылка Request.QueryString</asp:HyperLink>
  </p>
       <asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl="~/Default.aspx?param=2">Вторая ссылка Request.QueryString</asp:HyperLink>
  <p>
       <asp:Label ID="Label4" runat="server" Text="Данные Get ссылок"></asp:Label>
  </p>

 

В этом примере мы рассмотрим возможность получения коллекции параметров через Get запрос в адресной строке.

protected void Page_Load(object sender, EventArgs e)
        {
            // Request.QueryString.AllKeys - это свойство дает возможность получить все ключи в коллекции из адресной строки.
            string[] queryKeys = Request.QueryString.AllKeys;
            if (queryKeys.Length == 0)
            {
                Label4.Text = "В адресной строке нет GET параметра";
            }
            else
            {
                Label4.Text = "";
            }
           //здесь мы используем полученные ключи в индексаторе получая тем самым значение параметров 
            for (int m = 0; m < Request.QueryString.Count; m++)
            {
                Label4.Text += Request.QueryString[queryKeys[m]];
            }
        }

 

Обновлено: 04.05.2020 — 18:46

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.