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");
}
}
3 odpowiedzi
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.
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");
Spróbuj tego
protected override void OnInit(EventArgs e)
{
if (Session["UserData"] == null)
{
Response.Redirect("~/SignIn.aspx");
}
}
Podobne pytania
Nowe pytania
asp.net
ASP.NET to platforma programistyczna firmy Microsoft do tworzenia aplikacji internetowych, która umożliwia programistom tworzenie dynamicznych witryn internetowych, aplikacji internetowych i usług internetowych. Przydatne jest używanie tego tagu w połączeniu ze znacznikiem typu projektu, np. [asp.net-mvc], [asp.net-webforms] lub [asp.net-web-api]. NIE używaj tego tagu w przypadku pytań dotyczących ASP.NET Core - zamiast tego użyj [asp.net-core].