2011-04-10 108 views
3

如果我使用受保护的变量,该变量是否存在于整个Web应用程序中,还是在用户通过get或post移动到其他页面时被删除?我知道除非我使用静态变量,否则它不能在其他页面中访问,但我很好奇它是否存在于整个应用程序中。请告诉我!ASP.NET - 受保护的变量

回答

1
,当你移动到其他页面和回报,你的页面类的新实例

将被创建并因此所有非静态变量将被重置。

的值将是在一个请求流程的生命时间有效的(开始与请求开始,并与请求结束时结束)

使保护的变量,只是意味着该变量是访问能够在继承的类。例如在asp.net您可以在继承类使用它像您的标记内(因为它继承了后面类代码)

这意思保护变量,如果你想保留保存的页面之间的值

您可以使用这些物品的一个根据您的要求:

  • 饼干
  • 查询字符串
  • 会话状态
  • APPLICAT离子美国
  • 缓存

和视图状态保持在同一个页面或控制回发之间的状态变量而它不重定向到另一页。

+0

感谢您的回复。非常有帮助。 – SEA 2011-04-10 04:54:00

1

protected关键字不决定变量多久存在,也不确定是否会在接下来的文章后面提供。

你可能正在寻找的是国家管理。

看看this webpage,看看如何才能维持后背上,不同页面之间等状态

而且看看this page以确定哪些情况下使用其状态管理功能。

+0

谢谢。我会看看他们。 – SEA 2011-04-10 04:54:24

1

通常,“页面”变量只能在请求的持续时间内生效。如果您的变量是静态的,那么在应用程序域卸载之前,所有请求将只有一个变量实例。

如果变量是私有或保护,任何其他类将有机会获得它。

然而,你的问题似乎有点奇怪。你关心什么?

+0

我想知道使用受保护的变量是否会减慢我的Web应用程序。我听说session变量确实减慢了web应用程序的速度。受保护的变量不在用户之间共享,是吗? – SEA 2011-04-10 04:57:02