【发布时间】:2017-05-03 03:48:49
【问题描述】:
如何在回发之间将变量保存在 asp.net 中? 我正在使用 HttpContext.Current.Items 但它总是在回发后处理有没有其他选项可以做到这一点?
【问题讨论】:
-
会话、视图状态、缓存。在这里找到详细信息msdn.microsoft.com/en-us/magazine/cc300437.aspx#S9
如何在回发之间将变量保存在 asp.net 中? 我正在使用 HttpContext.Current.Items 但它总是在回发后处理有没有其他选项可以做到这一点?
【问题讨论】:
如果您的变量不可序列化或者您不希望客户端能够读取其值 => 使用 inProc Session
如果您的变量是可序列化的并且您不希望客户端能够读取其值 => 使用数据库会话
如果你的变量是可序列化的,并且你可以让客户端读取它的值,并且它应该只存在于页面范围内的回发序列中 => 你应该使用 ViewState。
【讨论】:
ViewState["YourVariable"] = "123";
ViewState 集合就是为了这个目的,在上面的例子中,YourVariable 是一个变量,它的值是你要保存的值,123 是这个变量的值。
ViewState 可以在页面范围内访问。如果你想在不同页面之间有值,你可以使用 ViewState["YourVariable"] = "123";
之类的会话【讨论】: