2010-01-29 98 views
33

我在ASP.NET中使用C#。获取一个POST变量

如何检查参数是否作为POST变量接收?

如果参数已通过POST或GET发送,我需要执行不同的操作。

回答

76

使用此为获取值:

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 2012-10-15 01:24:25

5

使用

的Request.Form []

的POST变量,

的Request.QueryString []

为GET。

2

除了使用Request.FormRequest.QueryString并根据您的具体情况,还可能会检查PageIsPostBack属性。

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

不正确,如果表单使用GET或POST发送,则IsPostBack为true。命名不反映功能 – sarepta 2014-09-09 13:07:45