Asp.Net,从上一页访问变量是一个很好的方法

本文关键字:一个 很好 方法 Net 一页 变量 访问 Asp | 更新日期: 2023-09-27 18:19:45

在从一个页面重定向到另一个页面时,我通常将值作为querystring传递,但正如您所知,查询字符串不是一个好方法,因为存在许多安全问题,而且它的最大大小为256字节或2048个字符。那么,通过设置前一页即"<%@ PreviousPageType VirtualPath="" %>"和访问前一页项目来访问变量是一种好方法吗

请告诉我,除了Sessions之外,还有其他传递变量的方法吗?使用上一页的概念是一种好方法吗?

Asp.Net,从上一页访问变量是一个很好的方法

以下是MSDN的"如何在ASP.NET网页之间传递值:"

您可以通过各种方式在页面之间传递信息,其中一些方式取决于重定向的发生方式。以下选项为即使源页在其他ASP.NET Web中也可用来自目标页面的应用程序,或者如果源页面不是ASP.NET网页:

  • 使用查询字符串
  • 从源页面获取HTTPPOST信息

以下选项仅在源和目标页面位于同一个ASP.NET Web应用程序中。

  • 使用会话状态
  • 在源页面中创建公共属性,并访问目标页面中的属性值
  • 从源页面中的控件获取目标页面中的控制信息

因此,假设您有相同的ASP.NET应用程序PreviousPage属性,这正是为您的案例设计的。

PreviousPage适用于跨页回发。如果你就是这么做的,那么没有什么错。

如果没有回发,对上一个页面类实例的引用将不会(不应该)包含任何状态信息。

如果你只是使用从一个页面到另一个页面的链接,最好使用会话状态、cookie或数据库之类的东西。如果您正在进行重定向,还有一些其他选项(包括使用Server.Transfer()而不是进行实际重定向)。

您可以使用另一种方法,您应该将数据保存在上下文中。items

这种方法对于在两个或多个连续页面之间保存数据非常有用。这是一种简单的方法,与相同

Context.Items.Add("SOMETHING","somevalue");

*您需要使用**服务器。传输

而不是Response.RRedirect。因为如果您使用Response.DRedirect方法,您的上下文将被清除,并且您无法获得任何值。

希望这对你有帮助。