我正在尝试通过跟随这篇MSDN文章跨页面发布。我有这样的代码:
CrossPagePosting1.aspx
<form id="form1" runat="server">
<h1>Page 1</h1>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox><br />
<asp:Button ID="Button1" runat="server" Text="Button" PostBackUrl="CrossPagePosting2.aspx"/>
</form>
CrossPagePosting2.aspx
<form id="form1" runat="server">
<h1>Page 2</h1>
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</form>
CrossPagePosting2.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
TextBox TextBox1 = (TextBox)Page.PreviousPage.FindControl("TextBox1");
Label1.Text = TextBox1.Text;
}
上面的代码在Page.PreviousPage
上生成一个Page.PreviousPage
。为什么?
这是一个ASP.Net 4.0应用程序。
它使用FriendlyUrls,这是默认的。
注意:我不希望上一页是强类型的,例如使用PreviousPageType
指令。根据引用的文章,这不应该是必要的。
发布于 2014-01-24 08:23:47
这里的问题是由FriendlyUrls引起的,它默认情况下安装在我工作的测试站点上。我禁用了FriendlyUrls,它起了作用。
发布于 2015-01-08 20:20:53
我发现友好的URLS可能会给你带来这个问题。默认情况下,Web模板包括ASP.NET友好URL。
使用visual中的默认WebForm时,AutoRedirectMode设置为永久性。这使您将请求转换为"GET“,并且由于您使用的是友好的URLS,因此无法评估PreviousPage。
解决方案:
发布于 2014-01-24 06:45:25
我想下面的文章会对你有帮助。
http://csharpdotnetfreak.blogspot.com/2009/08/cross-page-posting-in-aspnet.html
如何使用跨页投递PostBack有两种方法
https://stackoverflow.com/questions/21323196
复制相似问题