是否可以使用跨页回发(或类似的方法,可能是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发送,并在下一页解码.