Получение переменной POST

32

Я использую С# с ASP.NET.

Как проверить, был ли параметр принят как переменная POST?

Мне нужно выполнить различные действия, если параметр отправлен через POST или через GET.

Теги:
http-post

3 ответа

73
Лучший ответ

Используйте это для значений GET:

Request.QueryString["key"]

И это для значений POST

Request.Form["key"]

Кроме того, это будет работать, если вам все равно, происходит ли это из GET или POST или HttpContext.Items:

Request["key"]

Еще одно замечание (если вам нужно) - вы можете проверить тип запроса, используя:

Request.RequestType

Какой будет глагол, используемый для доступа к странице (обычно GET или POST). Request.IsPostBack обычно работает, чтобы проверить это, но только если запрос POST включает скрытые поля, добавленные на страницу с помощью инфраструктуры ASP.NET.

  • 2
    Я бы не стал использовать Request ["key"] ..., так как это коллекция Items и получает список всех объектов, хранящихся в контексте страницы. Это также будет включать значения cookie.
5

Используйте

Request.Form []

для переменных POST,

Request.QueryString []

для GET.

2

В дополнение к использованию Request.Form и Request.QueryString и в зависимости от вашего конкретного сценария также может быть полезно проверить свойство Page IsPostBack.

if (Page.IsPostBack)
{
  // HTTP Post
}
else
{
  // HTTP Get
}
  • 2
    неверно, IsPostBack имеет значение true, если форма отправляется с помощью GET или POST. Наименование не отражает функциональность

Ещё вопросы

Сообщество Overcoder
Наверх
Меню