前边三篇介绍如何调用页面,也就是,从一个页面重定向到另一个页面。既然我们要从一个页面定向到另一个页面,那么自然就涉及传值问题。下面介绍页面传值。

 

如果您的应用程序从一个 ASP.NET 网页重定向(导航)到另一个 ASP.NET 网页,您经常希望将信息从源页传递到目标页。例如,您可能具有一个页面,用户可以从中选择要购买的商品。当用户提交该页时,您希望调用其他页,以处理用户输入的信息。

可以采用各种方式在页之间传递信息,某些方式取决于重定向的方式。包括以下选项:

  • 使用查询字符串,该字符串可将信息追加到目标页的 URL 上。使用 HyperLink 控件将导航内置于页中时,或使用 Redirect 方法以编程方式重定向到其他页时,都可以使用查询字符串。 即使这些页不在同一个 Web 应用程序中,也能使用查询字符串传递值;如果要将信息传递到非 ASP.NET 网页的页中,也可以采取这种方式。如果目标页是一个 ASP.NET 网页,则可从 HttpRequest 对象的 QueryString 属性中读取查询字符串的值。

说明 :永远不要使用查询字符串传递敏感数据,因为查询字符串中的信息对用户是可见的,而且很容易被修改,因此会带来潜在的安全风险。

  • 使用会话状态可以存储信息,随后可从当前应用程序的所有 ASP.NET 网页中访问这些信息。但是,这种方法会占用服务器内存,并且其信息将在会话过期之前一直存储在内存中,因而与直接向下一页传递信息相比,其系统开销更大。
  • 在目标页,直接读取源页中的控件值和公共属性值。此策略适用于以下两种情况:当源页跨页发送到目标页时,以及调用 Transfer 方法在服务器上将执行从源页转到目标页时。

前两点很简单,也很常用,本篇介绍第三点。

 

从源页获取公共属性值

如果源页专门设计为与目标页共享信息,并且这两个页都是 ASP.NET 网页,则可以在源页中添加公共属性,用于公开要在页之间共享的信息。然后,可以在目标页中读取这些属性的值。

说明:仅当这两个页位于同一个 Web 应用程序中时,才能在目标页中读取源页属性。

1,  在源页SourcePage.aspx中,创建一个或多个公共属性。代码如下:

 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>源页</title>
 
    <script runat="server">
>
 
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table>
            <tr>
                <td>
                    <asp:TextBox ID="TextBox1" runat="server">SourcePage</asp:TextBox>
                </td>
            </tr>
            <tr>
                <td>
                    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
                </td>
            </tr>
        </table>
    </div>
    </form>
</body>
</html>

相关文章: