Asp.net Response.Redirect Ошибка - PullRequest
1 голос
/ 22 марта 2010

Моя команда и я работаем над приложением портала. Когда пользователь запрашивает страницу, мы получаем объект страницы (соответствующие разрешения, фактический файл для использования и что нет). Затем мы делаем Response.Redirect для "~ / Default.aspx".

Сумасшедшая вещь в том, что когда код для проверки доступа и что не вызывается из события нажатия кнопки из панели обновления ajax, response.redirect вставляет «& f2» или «/» в URL. Таким образом, вместо http://localhost/Default.aspx, веб-браузер перенаправляется на http://localhost/%f2Default.aspx, и впоследствии возвращает ошибку 404.

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

У кого-нибудь есть идея, почему это произойдет? И это происходит только тогда, когда внутри панели обновлений происходит событие click.

Ответы [ 2 ]

0 голосов
/ 22 марта 2010

Решение состоит в том, чтобы настроить панель обновления следующим образом:

<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> 
0 голосов
/ 22 марта 2010

Звучит так, будто экранирует URL. Можете ли вы вызвать метод для кода, который генерирует URL, чтобы декодировать его перед выводом?

...