使用ASP.NET函数进行响应处理

时间:2014-05-16 18:02:51

标签: c# asp.net c#-4.0

我在后面的c#代码中有一个函数,点按一下按钮就会触发。这应该将跨度更改为“DONE”,然后如果选中ZipFile复选框,则将zip文件发送给用户。

    Process.Text = "DONE";
    if (ZipFile.Checked)
    {
        Response.AppendHeader("content-disposition", "attachment; filename=" + folderName);
        Response.ContentType = "application/zip";
        using (ZipFile zip = new ZipFile())
        {
            zip.AddDirectory(Server.MapPath("PDFs")+"/"+folderName);
            zip.Save(Response.OutputStream);
        }
        Response.End();
    }

如果未选中该复选框,则显示DONE。如果选中了ZipFile复选框,它将发送zip文件,但不再更改process.text = DONE。响应似乎是覆盖ASP.NET函数返回。但由于这是我第一次使用Response,我显然做错了。

1 个答案:

答案 0 :(得分:0)

除了在服务器端设置文本外,还要在客户端进行设置。请尝试以下代码段:

<script>
    function btnProcessClicked() {
        $('#<%= Process.ClientID %>').text("DONE");
        return true;
    }
</script>

但是,在这种方法中,请记住,如果您没有在服务器端设置文本,那么在场景(!ZipFile.Checked)中,跨度将恢复到回发后的最后一个服务器值。 / p>