Asp.net Response.Redirect错误

时间:2010-03-22 20:21:14

标签: asp.net http-status-code-404 response.redirect

我和我的团队正在开发门户网站应用程序。当用户请求页面时,我们会获得一个页面对象(包含权限,要使用的实际文件以及不使用的内容)。然后我们做一个Response.Redirect到“〜/ Default.aspx”。

疯狂的是,当验证访问的代码以及从ajax更新面板中的按钮单击事件调用的内容时,response.redirect将“& f2”或“/”粘贴到url中。因此,而不是http://localhost/Default.aspx,webbrowser被重定向到http://localhost/%f2Default.aspx,并且随后返回404错误。

HttpContext.Current.Response.Redirect("~/Default.aspx", false);

任何人都知道为什么会这样?只有当click事件在更新面板内触发时才会发生。

2 个答案:

答案 0 :(得分:0)

听起来好像是escaping网址。你可以在生成URL的代码上调用一个方法来解码它吗?

答案 1 :(得分:0)

解决方案是设置更新面板,如下所示:

<asp:UpdatePanel ChildrenAsTriggers="false" UpdateMode="Conditional" runat="server">
    <Triggers>
    <asp:AsyncPostBackTrigger ControlID="ddlNewAddressCountry" EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="ddlAddressState" EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="ddlNewAddressCity" EventName="SelectedIndexChanged" />
    <asp:AsyncPostBackTrigger ControlID="ddlNewAddressPostalCode" EventName="SelectedIndexChanged" />
    <asp:PostBackTrigger ControlID="btnCustomerAddressEditCancel" />
  </Triggers>
...
 <td colspan="2">
                            <asp:Button ID="btnCustomerAddressEditSave" runat="server" OnClick="CustomerAddressEditSave_Click"
                                Text="Save" />
                            &nbsp;&nbsp;&nbsp;
                           <asp:Button ID="btnCustomerAddressEditCancel" runat="server" CausesValidation="false" OnClick="CustomerAddressEditCancel_Click"
                                Text="Cancel" />
                            &nbsp;&nbsp;&nbsp;
                            <asp:Button ID="btnCustomerAddressEditDelete" runat="server" OnClick="CustomerAddressEditDelete_Click" OnClientClick="return confirm('Are you sure you want to delete this record?');"
                                Text="Delete" />
                        </td>
                    </tr>
                </table>
        </ContentTemplate>
    </asp:UpdatePanel>