1

ユーザーがファイルをダウンロードできるように、ボタンがクリックされたときに応答に XML ファイルを書き込もうとしています。これは Excel ファイルでは正常に機能しますが、「text/xml」コンテンツ タイプを使用すると、ファイルには期待されるコンテンツが含まれますが、Web ページの HTML が末尾に追加されます。

ボタンをクリックするとページ HTML が返されるため、ファイルとマージされると思います。を使用Response.ClearContent()して応答をクリアしようとしましたが、うまくいきませんでした。

protected void Button1_Click(object sender, EventArgs e) {
    string fileName = "myFile.xml";
    string filePath = Server.MapPath("~/temp/myFile.xml");
    Response.ContentType = "text/xml";
    Response.AppendHeader("Content-Disposition", "attachment; filename=" + fileName);
    Response.ClearContent(); //I assumed this would clear the HTML before the file is written.
    Response.WriteFile(filePath);
    Response.Flush();
    File.Delete(filePath);
    Context.ApplicationInstance.CompleteRequest();
}

ページが XML ファイルに書き込まれていないことを確認するにはどうすればよいですか?

4

1 に答える 1

4

ボタンのイベントが発生したにHTML がレンダリングされるClickため、その時点でコンテンツをクリアしても効果はありません。

Response.End();メソッドの最後に追加してみてください。

于 2013-04-24T13:30:09.470 に答える