2012-02-14 84 views
-1

我正在做一些簡單的檢查,一些用戶數據在登錄時被放入會話中。發生什麼事情,我點擊幾個按鈕來獲得這個頁。此頁面a的下拉列表設置爲autopostback=trueResponse.Redirect重定向到一個不存在的頁面

當我在drop中更改我的選擇時,我的請求被重定向到一個不存在的頁面。該網站的根文件夾中存在signin.aspx。嘗試重定向時會查找此特定頁面所在的文件夾中的登錄信息(example.com/folder1/signin.aspx),而不是example.com/signin.aspx。

我是否應該使用Response.Redirect以外的東西來完成此操作?

邊注關於應用程序:

這是達網絡4使用jquery 1.6.4和jquerymobile 1.0。我認爲jquery mobile是問題所在,因爲我在其他應用程序中使用相同的模式/實踐而沒有問題。

發生這種情況的頁面位置。 example.com/folder1/page2.aspx標誌

位置頁:example.com/signin.aspx

URL顯示在錯誤。 example.com/folder1/signin.aspx

protected override void OnInit(EventArgs e) 
{ 

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

} 
+0

可以還張貼您的標記/ ASPX代碼 – Devjosh 2012-02-14 18:27:21

+0

更多信息需要:至極網址你打電話時thsi方法?你想要去什麼網址? – coppettim 2012-02-14 18:28:12

+0

我更新了我的問題。重定向應該轉到網站根目錄下的signin.aspx。重定向實際上是試圖帶我到文件夾中不存在的登錄頁面1 – Michael 2012-02-14 21:38:50

回答

3

你應該總是使用asp.net風格根目錄相對路徑:

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

這使得相對於網站根目錄的URL(而不是web根目錄,除非你的網站是web根目錄),但仍然允許網站移動。

+0

顯然它們被稱爲「根相對」。 http://msdn.microsoft.com/en-us/library/ms178116.aspx – BNL 2012-02-14 18:33:04

+1

我猜他們想要根路徑,因爲404可能是因爲他們在子目錄中的父文件夾沒有SignIn.aspx – 2012-02-14 18:33:29

+0

@BNL啊!所以我們都是對的! (和...都錯了......嘿嘿)好,趕快編輯! – 2012-02-14 18:35:18

1

jquery不會影響服務器端response.redirect。你確定該頁面是否存在,因爲它正在你的代碼中設置?如果signin.aspx位於網站的根目錄下,您是否可以不簡單地執行此操作?

Response.Redirect("/SignIn.aspx"); 
+0

我試過這個,並得到了相同的結果 – Michael 2012-02-14 21:39:59

+0

我刪除了我所有的jquery引用和一切工作。我很確定,jquery mobile是問題所在。 – Michael 2012-02-15 18:34:03

1

嘗試這個

protected override void OnInit(EventArgs e) 
{ 


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

} 
相關問題