2010-01-29 1 views
33

Я использую C# с ASP.NET.Получение POST-переменной

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

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

ответ

76

Используйте это для значений 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. – Darren

5

Используйте

Request.Form []

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

Request.QueryString []

для ГЭТ.

2

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

if (Page.IsPostBack) 
{ 
    // HTTP Post 
} 
else 
{ 
    // HTTP Get 
} 
+1

Неправильно, IsPostBack истинно, если форма отправляется с использованием GET или POST. Именование не отражает функциональность – sarepta

Смежные вопросы