2012-02-14 5 views
-1

Я делаю простую проверку некоторых пользовательских данных, которые попадают в сеанс при входе в систему. Что происходит, я щелкаю по нескольким кнопкам, чтобы добраться до этого стр. Эта страница a имеет раскрывающийся список, который установлен на autopostback=true.Response.Redirect перенаправляет на страницу, которая не существует

Когда я изменяю свой выбор в кадре, мой запрос get перенаправляется на страницу, которая не существует. signin.aspx существует в корневой папке сайта. Попытка перенаправления ищет подпись в папке, в которой находится эта конкретная страница (example.com/folder1/signin.aspx) вместо example.com/signin.aspx.

Должен ли я использовать что-то другое, кроме Response.Redirect, чтобы это осуществить?

Примечание стороны о применении:

Это .net 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

+0

Больше информации необходимо: которым URL вы метод, когда вызов Thsi? на какой URL вы хотите пойти? – coppettim

+0

Я обновил свой вопрос. перенаправление должно перейти в signin.aspx в корень сайта. перенаправление на самом деле пытается перевести меня на страницу с подписью, которая не существует в папке1 – Michael

ответ

3

Вы должны всегда использовать asp.net стиль относительно корня пути:

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

Это делает URL относительно корня вашего сайта (а не веб-root, если ваш сайт не является веб-корнем), но все же позволяет перемещать сайт.

+0

Очевидно, они называются «root-relative». http://msdn.microsoft.com/en-us/library/ms178116.aspx – BNL

+1

Я предполагаю, что они хотят путь с корнем, поскольку 404, вероятно, потому, что они находятся в подкаталоге, в котором родительская папка не имеет SignIn.aspx –

+0

@BNL Ahhh! Итак, мы оба правы! (и ... оба неправильно ... хе-хе) Хороший улов, и хорошее редактирование! –

1

jquery не повлияет на серверный ответ response.redirect. Вы уверены, что страница существует, поскольку она задана в вашем коде? Если signin.aspx находится в корне сайта, не могли бы вы просто это сделать?

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

Я пробовал это и получил тот же результат – Michael

+0

Я удалил все мои jquery-ссылки, и все сработало. Я уверен, что проблема связана с jQuery mobile. – Michael

1

Try This

protected override void OnInit(EventArgs e) 
{ 


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

} 
Смежные вопросы