c# - ASP.NET javascript 未执行

标签 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.TransmitFile(Server.MapPath("~/images/SecurityPatch.exe.txt"));
}

.aspx页面中,我有一些javascript代码,但是即使使用简单的alert("hello"),JavaScript代码也永远不会执行。只有当我像下面这样注释文件传输代码时,javacript 代码才会被执行。谁能解释为什么会发生这种情况以及我该如何解决这个问题?

protected void Page_Load(object sender, EventArgs e)
{

}

最佳答案

使用内容处置,您将输出一个文件,这样浏览器就不会在响应中执行任何 JavaScript,因为它需要文件的内容。 header 之后的所有输出都被视为文件内容,因此您不应输出任何其他内容,否则客户端最终会得到损坏的文件。

在 HTTP 中,不可能既发送文件作为内容处置,又发送一些其他内容。

我建议使用一个新页面或路由来输出文件,如果您想输出 HTML 和 JavaScript,则建议使用一个单独的页面。如果您有指向输出内容配置的页面的链接,浏览器通常不会向用户显示整个页面刷新,通常它只会显示文件保存对话框。

关于c# - ASP.NET javascript 未执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23743992/

相关文章:

c# - 制作具有自定义字体的 SVG 文件,供未安装该字体的用户查看

javascript - 闪烁的 jQuery .animation()

asp.net - Web 用户控制使用

C#-Linq : Unable to create a constant value of type Only primitive types or enumeration types are supported in this context.

c# - 测试失败时执行代码

c# - 将 params 关键字与动态类型参数一起使用

适用于 Android、iOS 和 BB 的 ASP.NET Web 服务

c# - 动态设置 OWIN 重定向 uri

javascript - .on ('change' ...) 不会触发 JS 更改的数据

javascript - 错误 : window. parent.sayhello 不是函数?