1

リンクボタンがクリックされたときにファイルをダウンロードしたいjqueryライトボックスベースの画面がありますが、保存できるポップアップボックスが表示されません...以下にある簡単なテストコードは、それを置くと機能しますフォームのロードではありますが、ハイパーリンクのサーバー側のクリックイベントに入れた場合はそうではありません。理由はありますか?

Response.ContentType = "text/plain";

Response.AppendHeader("Content-Disposition", "attachment; filename=event.txt");
Response.Write("test");
Response.Flush();
Response.End();

firebug を見ると、応答ヘッダーは次のようになっていますが、実際の応答は、リロード時のページの html だけです。

Response Headers
Cache-Control   private
Transfer-Encoding   chunked
Content-Type    text/plain; charset=utf-8
Server  Microsoft-IIS/7.5
X-AspNet-Version    2.0.50727
Content-Disposition attachment; filename=event.txt
X-Powered-By    ASP.NET
Date    Fri, 03 Jun 2011 03:21:25 GMT
4

1 に答える 1

1

これが私が試した実験です:

マークアップ:

<p>
    <a href="#" runat="server" ID="lnkDownload" Text="Download Text" onServerClick="DownloadFile">Download</a>
</p>

コードビハインド:

protected void Page_Load(オブジェクト送信者, EventArgs e) {

}

protected void DownloadFile(object sender, EventArgs eventArgs) { Response.ContentType = "text/plain";

Response.AppendHeader("Content-Disposition", "attachment; filename=event.txt");
Response.Write("test");
Response.Flush();
Response.End();

}

唯一の違いは、OnClick の代わりに OnServerClick を使用したことです。

これは、Firefox 3.6 および IE9 で動作します。

于 2011-06-03T04:36:50.627 に答える