1

是否可以使用跨页回发(或类似方法,可能是 Server.Transfer)将表单数据(例如,数据集 A)发布到页面,然后允许用户添加一些附加信息(例如,数据-set B) 然后将完整的数据集 (A+B) 回发到原始页面,然后流经正常的事件执行过程,类似于所有数据 A+B 在原始页面上提交给自身正常回传?

我不希望第二页对原始页面有任何类型知识,它只需要提供两个额外的提要并发送数据。这样不同的页面和控件可以使用这种方法来获取额外的数据。

例如:

页面 1 可以有一个包含各种文本输入的表单,以及两个为空的隐藏字段 Hidden1 + Hidden2。

当提交第 1 页上的表单时,用户会看到第 2 页,他们完成了该页面,然后来自第 1 页的所有表单数据都被发送回第 1 页,但隐藏字段 1 + 2 已完成。然后,第 1 页包含完成所需的所有信息。

我在想也许第 2 页只需要使用 PreviousPage 并获取其发布数据,添加到其中然后将其发布回第 1 页,但好像它来自第 1 页而不是第 2 页。但我不确定如果这是可能的,并且 ASP.NET 可能会将其读取为被篡改的数据?

这类似于此“问题”,但在该示例中,每一页都特定于上一页。

如果我不是特别清楚,很高兴重新措辞...

4

1 回答 1

0

您首先创建一个类来保存您的信息,并将其从一个页面移动到另一个页面并填充数据。

在每个页面中,您都有一个对此类的引用,一个变量,ether 创建一个新的 ether 从上一页获取它。你把它存储在 ViewState

现在从第 1 页 -> 第 2 页。

您通过设置从 Page1 发送它

PostBackUrl="Page2.aspx"

在 page2.aspx 上,您设置了可以获取信息的位置

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

你得到他们...

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

另一种手动方法是使您的类可串行化,通过 post 将其作为 xml 发送,然后在下一页对其进行解码。

于 2010-09-17T15:02:53.033 回答