65.9K
CodeProject 正在变化。 阅读更多。
Home

在页面之间传递信息 - .NET 方法

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.72/5 (29投票s)

2004年9月22日

CPOL

2分钟阅读

viewsIcon

188101

本文演示了如何在页面之间传递数据。

引言

对于那些刚接触 ASP.NET 的 ASP 开发人员

我不会详细介绍 Response.Redirect 或 Session 变量,因为它们与经典的 ASP 相同。本文面向那些在 ASP 中使用 Form 的 POST 方法,从一个页面传递表单变量到另一个页面的开发人员。令人惊讶的是,在 ASP.NET 中,我们不能通过发布或提交表单使用提交按钮,从一个页面传递表单变量到另一个页面。我一开始感到有点困惑。但很快我发现了一种新的传递表单变量的方法。(谁还想要旧的表单提交方式呢?)

操作方法

这是一种有点复杂但优雅的方法,可以在页面之间传递值。在这里,我们将要在其他页面中访问的值作为 Page 类的属性公开。在这里,我们编写额外的属性,以便在另一个 Web 表单中访问它们。但是,这些努力是值得考虑的。这种方法比以前的方法更面向对象。整个过程如下:

  1. 创建带有承载值的控件的 Web 表单。
  2. 创建带有 Get 过程的属性,以返回控件中的值。
  3. 提供一个将表单发布到另一个 WebForm 的按钮。
  4. 在按钮单击事件处理程序中,调用 Server.Transfer 方法,该方法会将执行转移到指定的 WebForm。
  5. 在第二个表单中,您可以使用 ontext.Handler 属性获取对第一个表单实例的引用,并将其转换为源 WebForm 类。

然后,您将使用我们创建的 Get 属性来访问控件值。

创建一个 WebForm,如下所示

Sample screenshot

编写属性以访问源 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");
}

在目标 PagePage_Load 上,编写以下代码以访问公共属性

SourcePage pgSource;
pgSource= (SourcePage) Context.Handler; 
Response.Write(pgSource.Name + "<br>");
Response.Write(pgSource.Email + "<br>");
Response.Write(pgSource.Phone + "<br>");

历史

  • 版本 1.0

    感谢 Alvin George 先生为我编写这段小程序,因为我时间不足。

    © . All rights reserved.