我正在尝试将内容写入Response输出流。
这个想法是用户点击链接并提示将文件保存到他们的机器上。
提示用户并且信息写入成功,但附加到文件末尾的是启动事件的页面的呈现html。为什么html会被附加到我的封闭流中?
首先我抓住了我的流,这发生在链接的点击事件中:
Response.ClearContent();
Response.ContentType = "text/plain";
Response.AddHeader("Content-Disposition", "attachment; filename=\"" + exportType + ".txt\"");
Response.BufferOutput = true;
using (var stream = Response.OutputStream)
{
ExportService.ExportPurchaseOrder(exportType, stream, PoList);
}
我将流传递了一下(var名称变为outputStream),但最终写得像这样:
using (var output = new StreamWriter(outputStream))
{
var lineLength = positions.Last().Start + positions.Last().Length;
var line = new StringBuilder(lineLength);
foreach (var field in positions)
{
line.Insert(field.Start, FormatFixedValue(field, data));
}
output.WriteLine(line.ToString());
output.Flush();
}
我还有什么理由看到这样的输出?
L20110 5001638088169 00000000008000000720000 EACH
L20110 6001638088152 00000000008000001020000 EACH
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head><title>
...