Request.Form
とRequest.QueryString
の正確な違いを教えてもらえますか?
私は一つの違いを知っています
HTTPリクエストメソッドがPOSTの場合、ユーザーが送信したデータはRequest.Form()コレクションにあります
HTTPリクエストメソッドがGETの場合、ユーザーが送信したデータはRequest.QueryString()コレクションにあります
他の違いは?そしてどんな例でも大歓迎です。
Request.Form
データはhttp
リクエスト本文に投稿されますが、QueryString
ではデータはURLを介して送信されます。
他の違いが見つかりました
Request("id")
最初に見つけようとします
Request.Form("id")
その後
Request.Querystring("id")
その後
Request.Cookies("id")
そして最後に
Request.ServerVariables("id")
より効率的で読みやすいので、可能であれば明示的な命名規則を使用することをお勧めします。また、最初のヒットが行われた後にシステムが停止するため、情報がどこから来ているかを確認できます。..情報の場所を指定すると、システムの速度も向上します。
詳細については、このリンクを参照してください。
しかし、誰もが他の違いを知っている、私はそれを本当に感謝しています。
MSDNで述べたように、
( Request.Form ):Request.Form(element)の値は、リクエストの本文で発生するelementのすべての値の配列です。パラメータの値の数を確認するには、Request.Form(element).Countを呼び出します。パラメータに複数の値が関連付けられていない場合、カウントは1です。パラメータが見つからない場合、カウントは0です。
および( Request.QueryString ):Request.QueryString(parameter)の値は、QUERY_STRINGで発生するパラメーターのすべての値の配列です。パラメータの値の数を確認するには、Request.QueryString(parameter).Countを呼び出します。変数に複数のデータセットが関連付けられていない場合、カウントは1です。変数が見つからない場合、カウントは0です。
だから、注意すべきことがいくつかあります:
ページの一般的なフォームには、いくつかの非表示要素を含めることができます。
<form method="post">
<input type="hidden" name="lol" value="cat" />
<input type="text" />
</form>
非表示の要素(メモリが機能する場合)は、QueryString
に表示されません。したがって、Request.QueryString
に表示されないものがあると思います。残念ながら、私は新しいマシンに開発アプリを再インストールする過程にあり、現時点ではこれをテストできませんが、私が正しい場合は、フォームをPOST
すると、フォームとその内容の詳細が表示されます送信されました。また、QueryString
にアクセスすると、URL全体を構成するものだけが表示されます。例:
http://somesite.com/index.html?v=1&NonHiddenElement=lol&ManualValue=hello
Request.Form-投稿されたフォームの値を取得することを意味します。
Request.QueryString-クエリ文字列で渡された値を取得することを意味します。
Request.Form()
Request.QueryString()