asp.net-mvc – Web API返回csv文件
发布时间:2020-05-28 03:39:10 所属栏目:asp.Net 来源:互联网
导读:我需要从web api控制器获取一个csv文件.我无法显示“另存为”对话框.只有文本输出显示在页面上.我试过两个,从jquery调用Export,也是普通的旧html 控制器: [System.Web.Http.HttpGet]public HttpResponseMessage Export(){ StringBuilder sb = new StringBuil
|
我需要从web api控制器获取一个csv文件.我无法显示“另存为”对话框.只有文本输出显示在页面上.我试过两个,从jquery调用Export,也是普通的旧html 控制器: [System.Web.Http.HttpGet]
public HttpResponseMessage Export()
{
StringBuilder sb = new StringBuilder();
IEnumerable<CustomerDiscount> list = this.subscriberRepository.GetSubscribers();
foreach (CustomerDiscount item in list)
{
sb.AppendFormat(
"{0};{1};{2};",item.CustomerName,item.CustomerNumber,Environment.NewLine);
}
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write(sb.ToString());
writer.Flush();
stream.Position = 0;
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType =
new MediaTypeHeaderValue("text/csv");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Export.csv" };
return result;
}
编辑: result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Export.csv" };
仍然不起作用 我称之为: <a id="export" href="/Relay/Billing/Export" class="btn btn-primary">Export</a> 并尝试过这样: $("#export").click(function () {
$.post("/Relay/Billing/Export",{ type: $("#discountType").val() })
.done(function (data) {
});
});
仍然没有“另存为”框 解决方法我不知道这是否是正确的协议,但这是我之前做过的.所以你有一个网页,你将从中调用一个API来响应文件,它应该由浏览器的另存为对话框来处理.HTML: <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function save() {
window.open('http://localhost:45719/api/home?id=12','_blank','');
}
</script>
</head>
<body>
<a class="btn btn-primary" onclick="save()">Export</a>
</body>
</html>
那个行动: public HttpResponseMessage Get(int id)
{
MemoryStream stream = new MemoryStream();
StreamWriter writer = new StreamWriter(stream);
writer.Write("Hello,World!");
writer.Flush();
stream.Position = 0;
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("text/csv");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment") { FileName = "Export.csv" };
return result;
}
这对我来说最适合Chrome和Firefox. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-3 – MvcContrib网格和复选框
- asp.net – 如何在构建期间从Visual Studio调用aspnet_comp
- iis-7 – 如何配置IIS 7(折扣asp.net)以指向应用程序子目录
- asp.net-mvc – Visual Studio断点未被击中
- 如何在asp.net用户控件中使用jQuery ajax?
- asp.net – 使用[WebMethod]转义的JSON响应
- asp.net-mvc – 如何调试此错误:’无法找到iisexpress.exe
- .net – 在控制器中查看列表数据
- asp.net – 如何知道一个javascript文件是否已被包含在顶级
- asp.net – 如何将Controller上的Ajax reqest重定向到登录页
推荐文章
站长推荐
热点阅读
