使用母版页进行跨页面发布

时间:2010-11-12 23:15:20

标签: asp.net

我找到了针对我的具体需求的解决方法,但无论如何我认为我会问这个问题。

假设我有一个带有母版页的典型数据输入Web项目 - 而不是使用Session变量并使用Response.Redirect或Server.Transfer将属于数据输入方式的用户重定向到下一步,我宁愿使用跨页面发布。

我尝试以这种方式设置我的一个网站,其中包含以下按钮:

<asp:Button ID="next" text="next" runat="server" PostBackUrl="EnterInfo.aspx" />

当我去测试更改时,我的<form>标记根本没有改变:

<form id="aspnetForm" action="SelectUser.aspx" method="post" name="aspnetForm">

我是否错过了此处的任何详细信息,或者是否只是不打算与母版页一起使用的跨页发布?

修改 上面的表单标记是在客户端上呈现的标记 - 而不是服务器端标记。我已经阅读了MSDN文章(like this one),在我看来,明确指出跨页面发布实际上是将表单发布到另一个页面。

也许我误解了这是改变表单的动作,但是当我单击我改变的按钮时,无论我的源表单是否在我的目标上的任何地方都没有调用任何内容 - 它只会回发到当前页面。

3 个答案:

答案 0 :(得分:1)

我认为使用PostBackUrl属性不会更改标记中表单的action,因为可能有许多其他控件正在执行正常的回发。我想,当按下这个特定按钮时,会使用一些javascript来更改表单的action

答案 1 :(得分:1)

您需要在数据来自的第二页上发布声明。

所以你有:

PostBackUrl="EnterInfo.aspx"

在EnterInfo.aspx上,您声明可以获取信息的位置

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

你得到他们......

if (Page.PreviousPage != null)
{
    if(Page.PreviousPage.IsCrossPagePostBack == true)
    {
        GetTheClass = PreviousPage.MyDataClass;
    }
}

PostBackUrl不会更改表单网址。

一些参考。
ASP.NET how to access public properties?

Cross-page postbacks and back again retaining data from source page

诗 起初我以为你只是输入你在渲染中看到的内容,但如果不是这样的情况正如@Mystere指出你需要在asp.net表单中运行它。

答案 2 :(得分:0)

首先,正如Graham所说.. PostBackUrl不会改变回发动作。其次,你只能在启用asp.net的表单上使用PostBackUrl,这意味着表单必须有runat =“server”