34

Request.Form でアクセスすると値が null になるが、Request.Params で取得すると問題ないという問題が最近発生しました。これを引き起こす可能性のあるこれらの方法の違いは何ですか?

4

3 に答える 3

31

Request.Form には、フォームから投稿された変数のみが含まれますが、Request.Params には、投稿されたフォーム変数と URL パラメーターとして指定された get 変数の両方が含まれます。

于 2008-08-08T05:51:54.420 に答える
21

Request.Params には、QueryString、Form、Cookie、および ServerVariables (この順序で追加) の組み合わせが含まれています。

違いは、QueryString と Form の両方にある「key1」というフォーム変数がある場合、Request.Params["key1"] は QueryString 値を返し、Request.Params.GetValues("key1") は[クエリ文字列値、フォーム値] の配列。

同じキーを持つ複数のフォーム値または Cookie がある場合、それらの値は GetValues によって返される配列に追加されます (つまり、GetValues はギザギザの配列を返しません)。

于 2008-08-29T10:57:21.823 に答える
1

その理由は、取得していた値がフォーム要素からのものでしたが、送信はフォーム ボタンの送信ではなく、リンク + JQuery を介して行われたためです。

于 2008-08-08T05:42:03.847 に答える