ASP.NET通过EventHandler中添加的客户端javascript下载文件
ASP.NET Downloading file through client javascript added in EventHandler
我对ASP.NET不是很熟练,我曾尝试过:
- 更新aspx网站上的UI元素
- 同时下载一个文件
我有这个JS函数:
function downloadURL(url) {
var hiddenIFrameID = 'hiddenDownloader',
iframe = document.getElementById(hiddenIFrameID);
if (iframe === null) {
iframe = document.createElement('iframe');
iframe.id = hiddenIFrameID;
iframe.style.display = 'none';
document.body.appendChild(iframe);
}
iframe.src = url;
};
和这个按钮服务器控制:
<asp:Button runat="server" ID="Button1" Content="DOWNLOAD" OnClick="Button1_Click" />
在EventHandler中,我简单地调用:
//更新UI
textBoxXY.Text = "Text after file download";
ClientScript.RegisterStartupScript(typeof(MyPage), "myDownloadKey", "downloadURL(" + ResolveUrl("~/MyDownloadHandler.ashx") + ");", true);
你觉得这种方法怎么样。它似乎有效,但是。。。
所有这些都与MyDownloadHandler.ashx
标头有关。如果你在你的处理程序ashx 上添加这个标题
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
则浏览器将打开文件保存浏览器,而不是新的选项卡。
你只需要做javascript就是
window.location = "MyDownloadHandler.ashx";
或者只是一个简单的链接。
总之,你已经创建了很多不必要的代码,你制作了一个帖子,这也是不必要的。
相对:从服务器下载文件的最佳方式是什么
从ASP.NET Web处理程序(.ashx)下载文件时的错误处理
相关文章:
- 如何将权限/授权数据传递到客户端Javascript
- 如何通过服务器上的Node从客户端JavaScript上传到谷歌云存储
- Telerik RadGrid排序客户端JavaScript jQuery
- 如何在客户端javascript中需要节点模块
- 客户端javascript没有'找不到我的网址
- 使用document.cookie将客户端javascript转换为节点模块
- Fido U2F客户端javascript源代码
- 从服务器端经典 asp 和客户端 javascript 传递字符串
- 如何将 Node.js 环境变量注入客户端 JavaScript
- RSS Feeds - 添加服务器端(PHP)或客户端(JavaScript / jQuery)
- 在客户端 Javascript 方法之后运行服务器方法
- 客户端 JavaScript 没有定义 - 但它在 HTML 源代码中.任何人都知道为什么
- Imgur 通过客户端 javascript 上传工作,但不是 node.js.慌乱了
- 突出显示与perl正则表达式匹配的HTML部分 - 在服务器端perl或客户端javascript中执行此操作
- Django设计模式-在加载时填充客户端JavaScript变量的方法
- 将Date从客户端(Javascript)发送到WebApi的最佳方式是什么
- 客户端JavaScript Facebook OAuth2实现
- 我已经从d3图表中创建了一个base64图像,需要使用客户端javascript或angular将其发布到faceboo
- 使用rest客户端/javascript验证microsoftoutlook-web(owa)
- 如何将客户端javascript返回值传递给ASP经典服务器端