Page.PreviousPage.FindControl имеет значение NULL - PullRequest
1 голос
/ 19 января 2012

Я получаю доступ к Test.aspx через две разные страницы.Примерно так:

Page1.aspx -------> Test.aspx <-------- Page2.aspx </strong>

Ятестирование это в IE7, где Request.UrlReferrer.AbsoluteUri не работает.В IE 8+ это работает.Ничто из того, что я пробовал, до сих пор не работает, и это сводит меня с ума орехи .

Я также попытался поместить скрытое текстовое поле в Page1.aspx, чтобы я мог видеть, доступно ли текстовое поле управления,тогда я знаю, что я иду от Page1 или иначе Page2.Этот код не работает:

        var hidden = Page.PreviousPage.FindControl("tbhidden");

'tbhidden' это: <asp:textbox ID="tbhidden" runat="server" visible = "false"/>

Как бы вы решили эту проблему?

Ответы [ 2 ]

3 голосов
/ 19 января 2012

Обычно UrlReferrer будет пустым для первой страницы, купленной при запуске браузера?

Вы можете использовать объект Page.PreviousPage, только если вы выполняете перенаправление на стороне сервера с помощью команды Server.Transfer

Решение проблемы

Если вы используете якоря для перехода на тестовую страницу, добавьте к ней параметр на стр. 1 и 2

<a href="test.aspx?from=page1 ...>

и найдите его на тестовой странице, используя Request.QueryString [ "от"]

Если вы используете сообщение, измените действие формы на стр. 1 и 2

<form action="test.aspx?from=page1 ...>

Это дважды проверит, что вы переходите с правильной страницы.

Еще один хороший совет - это загрузить инструмент под названием «Fiddler», он перехватывает посты на сайте и дает красиво отформатированную разбивку всех реферальных значений и запросов страниц, которые происходят.

0 голосов
/ 19 января 2012

попробуйте добавить следующий стиль в текстовое поле

<asp:TextBox ID="tbhidden" runat="server" 
     style="display:none; position:absolute; left:-500px" Width="0px">
</asp:TextBox>

удалить Visible="false" из свойства текстового поля

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...