Wykonuję proste sprawdzenie niektórych danych użytkownika, które są wprowadzane do sesji po zalogowaniu. Co się dzieje, klikam kilka przycisków, aby przejść do tej strony. Ta strona ma menu rozwijane ustawione na autopostback=true.

Kiedy zmieniam wybór w drop, moje żądanie jest przekierowywane do strony, która nie istnieje. signin.aspx istnieje w folderze głównym witryny. Próba przekierowania szuka logowania w folderze, w którym znajduje się ta konkretna strona (example.com/folder1/signin.aspx) zamiast example.com/signin.aspx.

Czy do tego celu powinienem użyć czegoś innego niż Response.Redirect?

Uwaga dodatkowa na temat aplikacji:

To jest .net 4 używający jquery 1.6.4 i jquerymobile 1.0. Myślę, że problemem jest jquery mobile, ponieważ bez problemu używam tego samego wzorca/praktyki w innych aplikacjach.

Lokalizacja strony, na której to się dzieje. example.com/folder1/page2.aspx

lokalizacja strony logowania: example.com/signin.aspx

adres URL, który wyświetla się w błędzie. example.com/folder1/signin.aspx

protected override void OnInit(EventArgs e)
{

    if (Session["UserData"] == null)
    {
        Response.Redirect("../SignIn.aspx");
    }

}
-1
Michael 14 luty 2012, 22:25

3 odpowiedzi

Najlepsza odpowiedź

Zawsze należy używać ścieżek względnych w stylu asp.net:

Response.Redirect("~/SignIn.aspx");

To sprawia, że ​​adres URL jest powiązany z katalogiem głównym witryny (nie z katalogiem głównym sieci, chyba że witryna jest katalogiem głównym witryny), ale nadal umożliwia przenoszenie witryny.

3
BNL 14 luty 2012, 22:35

Jquery nie miałoby wpływu na response.redirect po stronie serwera. Czy na pewno strona istnieje tak, jak jest ustawiona w kodzie? Jeśli signin.aspx znajduje się w katalogu głównym witryny, czy nie możesz po prostu tego zrobić?

Response.Redirect("/SignIn.aspx");
1
Jeff Turner 14 luty 2012, 22:28

Spróbuj tego

protected override void OnInit(EventArgs e)
{


    if (Session["UserData"] == null)
    {
        Response.Redirect("~/SignIn.aspx");
    }

}
1
Sanjay Goswami 14 luty 2012, 22:30