ASP.NET通过EventHandler中添加的客户端javascript下载文件
我对ASP.NET不是很熟练,我已尝试:ASP.NET通过EventHandler中添加的客户端javascript下载文件,javascript,asp.net,onclick,download,Javascript,Asp.net,Onclick,Download,我对ASP.NET不是很熟练,我已尝试: 更新aspx站点上的UI元素 同时下载一个文件 我有一个JS函数: function downloadURL(url) { var hiddenIFrameID = 'hiddenDownloader', iframe = document.getElementById(hiddenIFrameID); if (iframe === null) {
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" />
你认为这种方法怎么样。它似乎可以工作,但是…它们与
MyDownloadHandler.ashx
头文件有关。如果您在处理程序ashx中添加了此标题
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
然后浏览器将打开文件保存浏览器,而不是新选项卡
你只需要用javascript就可以了
window.location = "MyDownloadHandler.ashx";
或者只是一个简单的链接
总而言之,你已经创建了很多不必要的代码,你制作了一个帖子,这也是不必要的
亲属:
它们与
MyDownloadHandler.ashx
头文件有关。如果您在处理程序ashx中添加了此标题
HttpContext.Current.Response.ContentType = "application/octet-stream";
HttpContext.Current.Response.AddHeader("Content-Disposition",
"attachment; filename=" + SaveAsThisFileName);
然后浏览器将打开文件保存浏览器,而不是新选项卡
你只需要用javascript就可以了
window.location = "MyDownloadHandler.ashx";
或者只是一个简单的链接
总而言之,你已经创建了很多不必要的代码,你制作了一个帖子,这也是不必要的
亲属:
但它会把你带到另一个页面,还是?我需要做回发来更新UI元素。可能您不需要回发,您可以为要在客户端下载的文件创建参数。但是如果你需要发回帖子,你可以直接把文件发给他,而不是重新加载页面。但是这会把你带到另一个页面,或者?我需要做回发来更新UI元素。可能您不需要回发,您可以为要在客户端下载的文件创建参数。但是,如果您需要发回帖子,那么您可以直接向他发送文件,而不重新加载页面。好的,但是我应该在哪里设置textboxy.Text=“文件下载后的文本”?我必须用javascript来完成所有这些事情。。或者?@PaN1C_showt1; me是的,您可以在客户端这样做,或者您可以像其他人那样(我避免这样做)直接将文件发回。或者在页面呈现之后,您只需在脚本区域中呈现
window.location=“MyDownloadHandler.ashx?id=22”
。好的,但是我在哪里设置textboxy.Text=“文件下载后的文本”?我必须用javascript来完成所有这些事情。。或者?@PaN1C_showt1; me是的,您可以在客户端这样做,或者您可以像其他人那样(我避免这样做)直接将文件发回。或者在页面呈现之后,只需在脚本区域中呈现window.location=“MyDownloadHandler.ashx?id=22”
。