asp.net – 跨页回发并再次保留源页面中的数据

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

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

例如:

第1页可以有一个包含各种文本输入的表单,以及两个隐藏的字段Hidden1 Hidden2,它们都是空的.

当提交第1页上的表单时,向用户显示第2页,他们完成该页面,然后将第1页的所有表单数据发回第1页,但隐藏字段1 2完成.然后,第1页将获得完成所需的所有信息.

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

这类似于this ‘question’,但在该示例中,每个页面都是前一页的特定页面.

如果我不是特别清楚的话,很高兴改写这个…

解决方法

您首先创建一个类,以保持您的信息及其从一个页面移动到另一个页面并填充数据.

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

现在来自Page1 – >第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发送,并在下一页解码.

相关文章

引言 本文从Linux小白的视角, 在CentOS 7.x服务器上搭建一个...
引言: 多线程编程/异步编程非常复杂,有很多概念和工具需要...
一. 宏观概念 ASP.NET Core Middleware是在应用程序处理管道...
背景 在.Net和C#中运行异步代码相当简单,因为我们有时候需要...
HTTP基本认证 在HTTP中,HTTP基本认证(Basic Authenticatio...
1.Linq 执行多列排序 OrderBy的意义是按照指定顺序排序,连续...