request會按順序搜索全部的集合—QueryString、Form、Cookies、ClientCertificate、ServerVarible直到發現第一個匹配值的名稱,這樣做的集合效率低,并且是不安全的。
request包含各種方式的值,沒有指名是什麼,Request.Form()、Request.QueryString()等都包含在裏面,但是它們之間有個優先級問題,一般應該是get比post優先級高些。
request.form是post傳遞方式
request.querystring是set傳遞方式
比如:
<form method="post"
action="xxx.aspx?id=2">
<input id="id" type="text" name="id"> </form> 當我們提交這個表單時同時傳遞了兩個id值,一個是form裏input
的id它以post方式提交,而另一個是action裏的url傳遞了一個以get方式提交的id。
那麼我們如果用Request("id")得到的是哪一個值?就得據其優先級才知道,一般應該是get比post優先級高些,但是,如果我用Request.Form("id")一定得到的是以post提交的input裏輸入的值,而用Request.QueryString("id")得到的一定是以get方式提交的值,所以要養成好習慣都寫全,不要都用Request(),除非我們能夠確認只有一個不會有重復。
|
|
來自: 悟靜 > 《.net和asp.net》