1. 程式人生 > >.NET Request.Params與Request.QueryString等的區別

.NET Request.Params與Request.QueryString等的區別

Request.Form:獲取以POST方式提交的資料(接收Form提交來的資料);

Request.QueryString:獲取位址列引數(以GET方式提交的資料)

Request:包含以上兩種方式(優先獲取GET方式提交的資料),它會在QueryString、Form、ServerVariable中都按先後順序搜尋一遍。

而且有時候也會得到不同的結果。如果你僅僅是需要Form中的一個數據,但是你使用了Request而不是Request.Form,那麼程式將在QueryString、ServerVariable中也搜尋一遍。如果正好你的QueryString或者ServerVariable裡面也有同名的項,你得到的就不是你原本想要的值了。

Request.Params是所有post和get傳過來的值的集合,request.params其實是一個集合,它依次包括request.QueryString、request.Form、request.cookies和request.ServerVariable。

Get  Post 的區別

1、Get是用來從伺服器上獲得資料,而Post是用來向伺服器上傳遞資料。
2、Get將表單中資料的按照variable=value的形式,新增到action所指向的URL後面,並且兩者使用“?”連線,而各個變數之間使用“&”連線;Post是將表單中的資料放在form的資料體中,按照變數和值相對應的方式,傳遞到action所指向URL。
3、Get是不安全的,因為在傳輸過程,資料被放在請求的URL中,而如今現有的很多伺服器、代理伺服器或者使用者代理都會將請求URL記錄到日誌檔案中,然後放在某個地方,這樣就可能會有一些隱私的資訊被第三方看到。另外,使用者也可以在瀏覽器上直接看到提交的資料,一些系統內部訊息將會一同顯示在使用者面前。Post的所有操作對使用者來說都是不可見的。
4、Get傳輸的資料量小,這主要是因為受URL長度限制;而Post可以傳輸大量的資料,所以在上傳檔案只能使用Post(當然還有一個原因,將在後面的提到)。
5、Get限制Form表單的資料集的值必須為ASCII字元;而Post支援整個ISO10646字符集。
6、Get是Form的預設方法。

=====================================================================================

  Request.Params     獲取Request.QueryString和Request.Form等項的集合。   
  Request.QueryString:接受URL等查詢字串的集合。   
  Request.Form:是用來接受窗體表單等變數。

  Request.QueryString和Request.Form以前都是專門針對asp頁面的,當asp頁面的form的method屬性為get 時,使用querystring,為post時,使用form.   
  剩下的那個同樓上

  a呼叫b   
  Request.QueryString:   
  a.asp:   response.redirect   "b.aspx?id=123"   
  b.asp:     得到資料id的值則   var   sId=Request.QueryString["id"]   
    
  Request.Form:   
  a.asp:   
  <form>   
  ...   
  <asp:text   id="pName"   .../>   
  ...   
  </form>   
  b.asp:得到資料id的值則   var   sName=Request.Form["pName"]  
    
  Request.Params:.NET裡面取得引數的方法,上面兩種傳遞方式哪種都可以   
  b.aspx.cs:   
  string   sId=Request.Params["id"]   
  string   sName=Request.Params["pName"]