将数据发布到不同的ASP.NET WebForm

时间:2010-07-16 16:08:40

标签: c# asp.net webforms

在我的ASP.NET WebForms应用程序中,我有一个WebForm,其中包含一个UpdatePanel和多个用于界面的向导视图。

在向导结束时,用户可以通过单击按钮选择移动到另一个页面。这个新网页需要来自上一页控件的大约5个值。

最简单的方法是什么? (编辑:仅使用HTTP POST与数据 - 这是一个要求,因为我会使用数据库/会话)

我尝试使用cross-page posting没有运气,可能是因为我的更新面板和多个视图?

我尝试使用Server.Transfer,但由于更新面板,这也会中断。

重要的:

  1. 必须通过HTTP POST发送数据 - 数据无法存储在任何地方
  2. 无法更改方案。我无法将所有内容放在同一页面上

4 个答案:

答案 0 :(得分:1)

最简单的方法是将这些值放在会话对象中。

答案 1 :(得分:0)

您可以创建一个类来描述您需要在重定向页面上显示的数据。在用户填写向导数据时,为其设置一个新实例,使用您需要的信息填充新类的对象,然后在页面重定向之前将其添加到button_Click事件中的会话中。在您被重定向到的页面上,抓取Session对象,将其放入变量并提取您需要的数据。

答案 2 :(得分:0)

如果他们要转移到解决方案中的其他页面,您有几个选择。

  1. ViewState - ViewState随页面传递一起发送。它驻留在HTML中,但是已加密,因此没有人可以看到这些信息。根据信息的大小,您的页面大小可能会变得很大。
  2. 会话 - 这会通过Cookie将信息发送到客户端。
  3. 查询字符串 - 使用URI。只有当它是非敏感信息并且您不希望用户能够再次链接回相同的操作时,才应该使用此选项。

答案 3 :(得分:0)

我建议您将所有相关页面合并为一个;隐藏不在场的面板。 ASP.NET将从post到post维护所有控件的值。 Viewstate专为您描述的风景而设计。要使Viewstate大小保持最小,请确保在“Init”方法中填充下拉控件的查找值。

您不想使用会话状态。你想要的最后一件事是用户从以前的页面中丢失他们的数据,因为他们花了太长时间才回答。