Request.QueryString[имя_параметра] — это свойство дает возможность получить данные из адресной строки.
В первую очередь, при работе с GET параметрами, нужно проверить наличие значений при получении запроса. После (если это требуется) проверить тип полученного значения. GET параметры могут быть изменены пользователем в следствии чего, неправильные данные в параметрах могут нарушить работу страницы. (А это повлечет ошибки на стороне сервера, а ваш сайт может подвергнуться атаке злоумышленника.)
1 2 3 4 5 6 7 8 9 10 11 12 13 |
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 и две ссылки с параметрами, и нажав на одну из них. Мы сможем увидеть переданный параметр на сервер.
1 2 3 4 5 6 7 |
<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 запрос в адресной строке.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
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]]; } } |