2017-08-16 30 views
0

我有一個表單,其中有幾個輸入,當我提交表單處理信息時,當我嘗試讀取它們時,我不能。無法從HTML表單獲取請求表格

這是形式:

<form id="form1" action="page.aspx" method="get"> 
     <input type="text" name="idP" id="idP" value="123456789" /> 
... 
     </form> 

然後,當我郵寄到「page.aspx」的網址顯示的數據:

localhost/page?idP=123456789 

但是,當我嘗試從代碼閱讀:

string[] keys = Request.Form.AllKeys; 
      for (int i = 0; i < keys.Length; i++) 
      { 
       Response.Write(keys[i] + ": " + Request.Form[keys[i]] + "<br>"); 
      } 

它不打印任何東西,AllKeys顯示爲0值,我也嘗試過「Post」方法,但沒有任何結果。

我在做什麼錯了?

+2

你可以通過'Request.QueryString'獲得'idP'的值 – TheValyreanGroup

回答

1

與POST和PUT不同,GET請求沒有主體,因此表單值必須通過查詢字符串發送。你可以在你的URI中看到這個:localhost/page?idP=123456789

所以,你需要使用類似:

var idP = Request.QueryString["idP"]; 

Request.Form從請求拉值。從documentation

當HTTP請求的內容類型值是「應用程序/ x WWW的形式進行了urlencoded」或「多部分/格式數據」的表格屬性被填充。

如果你看看你的請求標題,你會發現Content-Type a)完全缺失,或者b)不是這兩者中的任何一個。所以,在這裏使用它是不合適的。

:從技術上講,GET請求可以有一個主體,但是根據HTTP規範,服務器應該忽略它。有關更多信息,請參閱this answer