2010-01-29 102 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