C# 未执行ASP.NET javascript
在C# 未执行ASP.NET javascript,c#,javascript,asp.net,C#,Javascript,Asp.net,在C#文件中,我有下面的代码,它将文件传输到客户端: protected void Page_Load(object sender, EventArgs e) { Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition", "attachment; filename=SecurityPatch.exe.txt"); Response.Tran
C#
文件中,我有下面的代码,它将文件传输到客户端:
protected void Page_Load(object sender, EventArgs e)
{
Response.ContentType = "application/octet-stream";
Response.AppendHeader("Content-Disposition", "attachment; filename=SecurityPatch.exe.txt");
Response.TransmitFile(Server.MapPath("~/images/SecurityPatch.exe.txt"));
}
在.aspx
页面中,我有一些javascript
代码,但是javascript代码从未执行过,即使有一个简单的警报(“hello”)
。只有当我像下面这样注释文件传输代码时,才会执行JavaScript代码。有人能解释为什么会发生这种情况,我该如何解决
protected void Page_Load(object sender, EventArgs e)
{
}
使用内容配置,您将输出一个文件,因此浏览器不会在响应中执行任何JavaScript,因为它需要文件的内容。头之后的所有输出都被视为文件内容,因此不应输出任何其他内容,否则客户端将最终导致文件损坏 在HTTP中,不能将文件作为内容处置发送,也不能同时发送其他内容
我建议使用一个新页面或路径来输出文件,如果您想输出HTML和JavaScript,则使用一个单独的页面。如果您有一个指向输出内容配置的页面的链接,浏览器通常不会向用户显示整页刷新,通常只会显示文件保存对话框。我想您是在描述何时执行javascript代码 您应该在页面加载后执行代码
function onLoadHook(handler) {
if (window.addEventListener) {
window.addEventListener("load", handler, false);
}
else if (window.attachEvent) {
window.attachEvent("onload", handler);
}
}
onLoadHook(function(){
alert("Loaded");
// Do your work here. Create your ajax request and hook here.
});
我不知道你的javascript在哪里被调用,但我认为你可能想了解asp.net页面的生命周期。谢谢。问题是文件下载完成后页面立即消失。这个代码仍然不起作用。哈哈,这看起来像是考试中的问题。你搞定了!:)