NullReferenceException в ASP.NET Свойство PreviousPage - PullRequest
1 голос
/ 11 января 2011

Я следовал указаниям MSDN по передаче данных между страницами asp.net.

Но при использовании свойства 'PreviousPage' для доступа к элементам управления предыдущих страниц я получаю исключение null ref, что PreviousPage не установленок экземпляру объекта.

Вот мой код:

public partial class Portal : System.Web.UI.Page
{
    public string Username
    {
        get
        {
            return txt_User.Text;
        }
    }

И это кнопка отправки на начальной странице:

<asp:Button ID="btn_Submit" runat="server" onclick="btn_Submit_Click" 
    PostBackUrl="~/Query.aspx"

Свойство предыдущей страницы ввторая страница:

    protected void Page_Load(object sender, EventArgs e)
    {
        Username = PreviousPage.Username; 
    }

В соответствии с инструкциями MSDN я также добавил это вверху файла разметки второй страницы:

<%@ PreviousPageType VirtualPath="~/Portal.aspx" %> 

Также обратите внимание, что я пробовал Server.Transfer для переключения страницвместо этого и выдает ту же ошибку.

РЕДАКТИРОВАТЬ, здесь используется Server.Transfer на событии щелчка начальной страницы:

 protected void btn_Submit_Click(object sender, EventArgs e)
    {
        Server.Transfer("Query.aspx"); 
    }

РЕДАКТИРОВАТЬ, код кнопки без обработчика события:

<asp:Button ID="btn_Submit" runat="server"
    PostBackUrl="~/Query.aspx"
    style="height: 26px" Text="Submit" />

1 Ответ

0 голосов
/ 11 января 2011

Это прекрасно работает для меня. Если значение PreviousPage равно нулю, это обычно означает, что текущая страница не отображалась в результате обратной передачи между страницами.

Можете ли вы подтвердить, что ошибка возникает на второй странице?

Кроме того, что за onclick="btn_Submit_Click" в вашем определении кнопки? На исходной странице не должно быть кода, отвечающего на событие клика. Помните, что он будет обрабатываться целевой страницей.

РЕДАКТИРОВАТЬ: Теперь, когда вы обновили свой вопрос, мой последний вопрос, кажется, проблема. Вы делаете перевод сервера с исходной страницы. Это НЕ постбэк между страницами, и поэтому PreviousPage имеет значение null.

Удалите атрибут onclick из вашей кнопки и удалите btn_Submit_Click.

...