ASP.NET中跨页面传递表单变量的方法

ASP.NET中,与经典的ASP不同,不能通过提交按钮来使用POST方法传递表单变量。这可能会让习惯于ASP的开发者感到困惑。但是,ASP.NET提供了一种新的、面向对象的方法来传递表单变量。本文将介绍这种方法的实现步骤和代码示例。

方法概述

这种方法虽然复杂,但更为优雅。通过将需要在其他页面访问的值作为Page类的属性公开,从而实现跨页面传递。以下是实现这一过程的步骤:

  • 创建带有值的Web表单控件。
  • 创建带有Get过程的属性以返回控件中的值。
  • 提供按钮,将表单提交到另一个WebForm。
  • 在按钮点击事件处理程序中,调用Server.Transfer方法,将执行转移到指定的WebForm。
  • 在第二个表单中,使用Context.Handler属性获取第一个表单实例的引用,并将其转换为源WebForm类。
  • 使用创建的Get属性来访问控件值。

创建WebForm

以下是创建WebForm的示例代码:

public class SourcePage : System.Web.UI.Page { public string Name { get { return txtName.Text; } } public string Email { get { return txtEmail.Text; } } public string Phone { get { return txtPhone.Text; } } }

按钮点击事件处理程序

在按钮点击事件中,编写以下代码:

private void btnSubmit_Click(object sender, System.EventArgs e) { Server.Transfer("destination.aspx"); }

访问公共属性

在目标页面的Page_Load事件中,编写以下代码来访问公共属性

protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { SourcePage pgSource; pgSource = (SourcePage)Context.Handler; Response.Write(pgSource.Name + ""); Response.Write(pgSource.Email + ""); Response.Write(pgSource.Phone + ""); } }
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485