PreviousPage имеет значение null при попытке постбэка между страницами с помощью кнопки и атрибута PostBackURL
Я следовал учебному руководству: Получение значений общедоступных свойств со страницы источника на MSDN, и я запустил новый сайт веб-форм и создал следующие две страницы. Они работают просто отлично. Теперь, если я скопирую и вставлю их в мой другой проект веб-форм, тогда PreviousPage == null. Я понятия не имею, в чем проблема может быть. Там нет никаких ошибок вообще. Я просто получаю
messageSTr.Text = "Not a cross-page post.";
ОБНОВЛЕНИЕ: я удалил ссылку MasterPage в объявлении страницы, и я все еще получаю ошибку. Я скопировал этот проект web.config на другой рабочий, и он все еще работает. Это не мой веб-конфиг, я в полной растерянности. Это жизненно важный инструмент, который мне нужен для моего приложения.
Эта страница отправляется на страницу 1
<%@ Page
Title=""
Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true"
CodeBehind="WebForm2.aspx.cs"
Inherits="WebApplication5.WebForm2" %>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<asp:Button id="button1" Text="Submit to PostBackUrl" PostBackUrl="~/WebForm1.aspx" runat="server"/>
Эта страница получает отправку
<%@ Page
Title=""
Language="C#"
MasterPageFile="~/Site.Master"
AutoEventWireup="true"
CodeBehind="WebForm1.aspx.cs"
Inherits="WebApplication5.WebForm1" %>
<asp:Content ID="Content3" ContentPlaceHolderID="MainContent" runat="server">
<asp:Label ID="messageSTr" runat="server"></asp:Label>
WebForm1.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
if (PreviousPage.IsCrossPagePostBack == true)
{
messageSTr.Text = PreviousPage.imaliveStr;
}
}
else
{
messageSTr.Text = "Not a cross-page post.";
}
}
1 ответ
Проблема заключалась в том, что пакет nuget FriendlyUrls удалял.aspx после имен моих страниц, поэтому моей целевой страницей был не WebForm2.aspx, а просто WebForm2. Это сделало предыдущую страницу нулевой.