目标_blank的跨页发布使源页面无法正常运行

时间:2012-11-06 08:33:00

标签: asp.net

我试图尽可能少地描述它: 我有很多控件的 Page1.aspx ,以及其中的预览和保存按钮。我还有 Page2.aspx ,这是预览按钮点击的重定向目标。

由于我需要从Page1中选择所有控件来在Page2上绘制预览,因此重定向是通过设置预览PostBackUrl来完成的。 我还必须在新选项卡或窗口上显示预览,因此我使用onClientClick="aspnetForm.target='_blank'"进行预览按钮定义。

保存按钮单击回调,将数据存储到数据库后重定向到某些Page0.aspx(初始报告列表 - 代码主题)

预览按钮工作正常 - 预览呈现在新选项卡中,但是当我转到旧选项卡并单击保存时,我从调试器看到,首先加载了Page2.aspx(?),然后加载了Page1.aspx。然后所有数据都存储在数据库中,但是虽然执行了Page0重定向,但是Page1.aspx仍然在浏览器中加载。

我不知道这背后有什么过程。有谁知道给我一个见解?或者,如果您认为我的方法无法实现,请说明如何做同样的事情?

如果它很重要,Page1上的所有内容都位于更新面板中。

非常感谢您的回复

1 个答案:

答案 0 :(得分:2)

在ASP.NET中,基本上只有零(0)个环境,您可以将表单数据从一个页面发送到另一个页面。虽然你想要完成的是什么是模糊的,但你可以考虑以下几点:

  • 将独特的操作/系统隔离到单个页面。如果您有类似用户配置文件的内容,则不要有三个不同的aspx页面;只需使用单个页面供用户或管理员管理该数据/功能。回发活动是你的朋友。
  • 了解ViewState与传统表单数据之间的区别。我猜测如果你试图将表单数据从一个页面发布到另一个页面,你可能不明白ViewState的观点。使用单个页面来维护用户当前正在使用的临时数据对于ViewState来说非常有用。如果您希望数据显示在另一个页面上,那么您需要将上一页中的数据视为最终数据,因此应将其保存到数据库或其他介质中。

这些只是一些一般性的指导原则,因为没有说出“你做错了”之类的通用问题,对你的问题没有确切的答案。我建议首先尝试将表单数据从一个aspx页面发布到另一个页面。