0

UpdatePanel内のASP.Netページ(マスターページを使用している)をユーザーコントロールしています。このコントロールには、ボタンを含むいくつかの機能があります。コントロールは正常に機能しますが、クライアントがクリックしたときにファイルをクライアントに送信しようとしているリンクが1つあります。

コントロールは、表示、アクションに使用されるオブジェクトでインスタンス化され、オプションでクライアントに送信するためにシリアル化されます。このプロジェクトでも以前にファイルを送信しましたが、UserControlからではなく、UpdatePanelの背後でも送信していません。コードをステップスルーでき、コードが機能していることはわかっていても、ブラウザはリンクをクリックしていないかのように動作しています。

Response.Clear()
Response.AppendHeader("content-disposition", "attachment; filename=assignment.ics")
Response.ContentType = "text/xml"

'serialization code goes here

Response.Write(seralizedObject)
Response.Flush()
Response.End()

代わりに試しResponse.Closeました。私も使ってみましResponse.OutputStream.Writeた。何も機能していないようです。私がやろうとしていることは可能ですか?または、ファイルを送信する別のページにリダイレクトする方法を考案する必要がありますか?

更新:受け取った回答を考慮して、実際にファイルを送信するために別のURL(ashxファイル)を指すように実装を変更しました。動作しますが、理想的ではありません。私はまだこれに関する他の提案を受け入れています。

が機能しない場合UpdatePanelでも、オブジェクトを別のファイル(ashxファイルなど)に「内部的に」送信して、ファイルを送信したいと思います。現在、URLクエリ文字列を使用して、ashxファイル内のオブジェクトを再構築するのに十分な情報を送信しています。言うまでもなく、それはあまりきれいな解決策ではありません。

4

1 に答える 1

0

さまざまな理由により、更新パネルを使用してファイルをクライアントにストリーミングすることはできません。このAJAXシナリオでは、ファイルストリーミングは機能しません。UpdatePanelを削除して、それがなくても機能することを確認してから、条件付き更新を使用してください。 詳細については、これを参照してください。

于 2013-03-26T19:19:06.953 に答える