asp.net/htmlのフォームコレクションは何ですか?
-
09-10-2019 - |
質問
簡単な質問ですが、自分で明確にする必要があります。リクエストオブジェクトにアクセスできるコレクションに関しては、次のようです。
Cookies: (whats in a text file in the browser)
Querystring: (whats passed in the url like [key=value&key=value etc])
Server Variables: ?
Form Variables: ?
と?次に、HTTPパケット/HTMLのどこに配置されているのか本当にわかりません。 Wiresharkを使用してキャプチャしました:
POST /Security/HelixSessionAuth.aspx HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 391
ClientIP=192.168.20.31
Url=%2Fflash%2F56553550%5Fhi%2Emp4
Log=SESSIONSTART%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%20%20flash%2F56553550%5Fhi%2Emp4%200%20192%2E168%2E20%2E31%203%20%5B13%2FDec%2F2010%3A16%3A31%3A23%20%2B0000%5D%200%200%200%20%5B0%20No%20Error%5D%20%5B0%20No%20Error%5D%20%5Brtmp%3A%2F%2Fhelix%2Epete%2Evideolibraryserver%2Ecom%2Fflash%2F56553550%5Fhi%2Emp4%5D%0A
HTTP/1.1 404 Not Found
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 13 Dec 2010 16:31:23 GMT
Connection: close
Content-Length: 315
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<HTML><HEAD><TITLE>Not Found</TITLE>
<META HTTP-EQUIV="Content-Type" Content="text/html; charset=us-ascii"></HEAD>
<BODY><h2>Not Found</h2>
<hr><p>HTTP Error 404. The requested resource is not found.</p>
</BODY></HTML>
彼らは上記のフィードのどこにいるでしょうか?
解決
フォームコレクションは、POSTメソッドを介してアクションページに渡されるページ内のコントロールのリストです。 QueryStringはGETで、POSTはフォームコレクションにアイテムを追加します。投稿のコントロールの名前がわかっている場合は、次のようなアクションページでその値にアクセスできます。
Request.Form("myControl")
.NET Webフォームでは、.NETが特殊なClientIDを注入して、背後のコードに実際のコントロールのIDを保持するため、これはもう少し複雑です。
サーバーコレクションは、クライアント、サーバー、接続、ブラウザなどに関する情報を識別する一般的なサーバー変数のコレクションです。完全なリストはこちらにあります。
https://msdn.microsoft.com/en-us/library/ms524602(v=vs.90).aspx
他のヒント
Wiresharkこれは少しSledgehammer-to-Crack-a-nutです。から始めることをお勧めします httprequestのMSDNドキュメント. 。これは、フォームとサーバーコレクションが何であり、それらが何を表しているのかを理解するのに役立つはずであり、実際のデータパケットで何を探しているかがわかります。
最初にあなたのツールについて。 WireShark
HTTPの概念を学習するために必要のない低レベルのパケット分析ツールです。代わりに使用します フィドラー.
serverVariables:
これはASPクラシックの古いオブジェクトです。現在、オブジェクトには多くのエイリアスがあります。例えば Request.UserHostAddress
のエイリアスです Request.ServerVariables("remote_addr")
。また Headers
, Cookies
, Session
オブジェクト、...このオブジェクトから利用できます。このオブジェクトは、より後ろ向きの互換性があります。
フォーム変数:
ASP.NETのすべてのコントロールはASP.NETによってIDで追跡され、その状態は内に保持されます ViewState
隠されたフィールド。 View Stateは、ASP.NET Webページで使用される手法です。 PostBacks
。だから、すべてに PostBack
(フォームポスト、つまり、ボタンをクリックします)サーバー側のASP.NETは、フォームオブジェクトとその子供(フォーム内のコントロール)をPOSTデータから再貯蔵します。それがフォームコレクションと呼ばれます。