Response.Redirect 使用 UpdateProgress 时不工作

Response.Redirect not working when using UpdateProgress

我使用 UpdatePanel 和 UpdateProgress。

Response.RedirectJavaScript redirect window 都没有使用它们。

此代码有效:

<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:UpdateProgress ID="UpdateProgress1" runat="server" DynamicLayout="true"
        AssociatedUpdatePanelID="UpdatePanel1">
    <ProgressTemplate>
        <asp:Image ID="ImageWait" runat="server" ImageUrl="../images/wait.gif" />
    </ProgressTemplate>
</asp:UpdateProgress>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Button ID="ButtonSave" runat="server" Text="Save"
        OnClick="ButtonSave_Click" ValidationGroup="Valid1" />
    </ContentTemplate>
    <Triggers>
        <asp:AsyncPostBackTrigger ControlID="ButtonSave"
            EventName="Click" />
    </Triggers>
</asp:UpdatePanel>

不工作:

protected void ButtonSave_Click(object sender, EventArgs e)
{
    // Saved here

    Response.Redirect("../Main/Success.aspx");
}

也不行:

protected void ButtonSave_Click(object sender, EventArgs e)
{
    // Saved here

    Page.ClientScript.RegisterStartupScript(this.GetType(), "redirect",
        "location.href = '../Main/Success.aspx'", true);
}

我该如何解决这个问题?

您可以使用 ScriptManager

protected void redirector_Click(object sender, EventArgs e)
{
    ScriptManager.RegisterClientScriptBlock(this, GetType(), "redirect",
        "location.href = 'ListViewDemo.aspx';", true);
}