2011-08-12 17 views
3

1つの.aspxページからハンドラ(.ashx)にいくつかの値を渡そうとしています。 私はセッション変数を使ってこれをやっていましたが、これはFirefoxとChromeでうまく動作することに気付きました。私はその考えを断念し、クエリ文字列で値を渡すことにしました。汎用のハンドラが完全なクエリ文字列を受け取りません

私はこのようなハンドラをuploadify init関数で設定しています。

'uploader' : 'js/uploadify.swf', 
'script' : 'UploadVarios.ashx?util_Id=' + $('#<%= util_Id.ClientID %>').val() + '&util_NomeColaborador=' + $('#<%= util_NomeColaborador.ClientID %>').val() + '&util_IdPosto=' + $('#<%= util_IdPosto.ClientID %>').val() + '&ValueEstadoUploadVarios=' + $('#<%= ValueEstadoUploadVarios.ClientID %>').val() , 
'cancelImg' : 'js/cancel.png', 
... 

ただし、ハンドラのクエリ文字列にアクセスしようとすると、最初のパラメータ(この場合はutil_Id)しか使用できません。

debug print screen

私はので、私は少しテストを作り、これにそれを変更し、私は文字列を連結したやり方と間違って何かがあるかもしれないことを考えた:

'uploader' : 'js/uploadify.swf', 
'script' : 'UploadVarios.ashx?id1=0&id2=0', 
'cancelImg' : 'js/cancel.png', 
... 

そして、ここでの結果です。

second print screen from debug

私が間違って何をしているのですか?

EDITは: - 以下のようなクエリ文字列をエンコードしようとするだけの提案、完全なクエリ文字列

enter image description here

+0

で、キーと値のコレクションを取得することができますASP.Net(すなわち 'context.Request.Url.OriginalString') – Justin

+1

で見られるようなURLを投稿することができます使用しましたフィドラーは実際に電線を通じて何が送られてくるのか見ていますか? – AakashM

+1

@Kragen:投稿を編集して今追加しました。 AakashM:いいえ、私は(まだ)持っていません。私はそれのようなものを使ったことがないし、それに精通していないからです。 – seth

答えて

3

を追加しました。

'uploader' : 'js/uploadify.swf', 
'script' : 'UploadVarios.ashx%3fid1%3d0%26id2%3d0', 
'cancelImg' : 'js/cancel.png', 

これはおそらくトリックです。そうでない場合、あなたは常にHttpUtility.UrlDecodeでそれを復号化するために行くとHttpUtility.ParseQueryString

+0

うん、これは問題を解決した。文字列をエンコードするはずですか?もしそうなら、どうすればいいのですか(手動ではありません)? – seth

+1

JavaScriptのencodeURIComponent()を使用して、そのエンコードを自動化できます。 –

+0

ありがとうございます。あなたが提案したものを使って問題を解決することができました。 – seth

関連する問題