【发布时间】:2014-12-01 14:32:29
【问题描述】:
我有一个带有next和back按钮的asp.net页面和一个变量“i”,每次单击next或back按钮,变量“i”都会增加或减少1。那么我如何声明变量i? 我不想使用“public static int i” 我应该使用会话还是视图状态? 有没有更好的方法来做到这一点?
【问题讨论】:
-
是的,您可以使用会话或视图状态。永远不要使用静态字段,因为每个请求(用户)的值都是相同的。
-
请勿使用
Session变量,除非您需要跨页面保留值。如果您的关注仅限于特定页面,则使用ViewState变量(包装在属性中以便于使用),而不是 Session 变量。使用会话变量涉及多个问题,最好尽可能避免。 -
谢谢@TimSchmelter,我知道静态变量具有应用程序范围。你能告诉我你提到@PradeepKumar 的问题吗?
-
会话变量的通用名称如 a,b,c 或 i,j,k 等可以被其他页面无意识地修改,您将很难调试您的代码。此外,会话变量会遇到超时问题,
ViewState和Hidden Field是免疫的,因为它们是往返的。此外,一旦不再需要会话变量,就很难清理它们。例如您导航到另一个页面,但您的会话变量仍然存在。 -
非常感谢@PradeepKumar