如何保留全局变量List的值回发后

发布于 2024-12-05 12:03:03 字数 501 浏览 0 评论 0原文

我首先查看了这个问题:页面刷新后保留价值。但它似乎不适用于集合,因为 ViewState 只存储一个值。我需要使用该集合,因为我不知道用户将创建多少个对象实例。因此,ViewState 不是一个选项。我也尝试使用静态变量,但它存储值的时间比我需要的时间长(我在这里找到了对此的解释:http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/3664cd62-46c7-4098-88a7-c09647673096)。

我非常感谢你的帮助。

I have looked at this question first: retain value after page refresh. But it seems like it doesn't work with collections because the ViewState only store one value. I need to use the collection because I do not know how many instances of object the user will create. Therefore, the ViewState is not an option. I also tried using static variables but it stores the values for longer than I need it (I found the explanation for this here: http://social.msdn.microsoft.com/Forums/en/csharpgeneral/thread/3664cd62-46c7-4098-88a7-c09647673096).

I would massively appreciate your help.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

樱娆 2024-12-12 12:03:03

通常,对于其他对象来说,使用会话状态更好,但您也可以在 ViewState 中存储任何可序列化的对象( http://msdn.microsoft.com/en-us/library/ms972976.aspx)。

注意:请避免在 ASP.Net 中使用静态属性存储数据,因为这些值在所有请求之间共享。请注意 - HttpContext.Current 并不是真正的静态对象(每个请求对象)。

Often using Session state is better for lare objects, but you can store any serializable objects in the ViewState too ( http://msdn.microsoft.com/en-us/library/ms972976.aspx ).

Note: please avoid using storing data in static properties in ASP.Net as the values are shared across all requests. Note on note - HttpContext.Current is not really static objects (per-request object).

泛泛之交 2024-12-12 12:03:03

您可以存储列表<>服务器端客户端会话中的实例。然后,对于每个请求,您都可以访问会话中的列表。

但是,只要列表中的项目<>,您仍然应该能够使用视图状态。是可序列化的。

使用视图状态时,您应该考虑浏览器和 Web 服务器之间交换的数据量。如果您的项目不是特别大,并且列表中不会有太多项目,那么视图状态可能也不是不合理。

代码可能看起来像这样。

private ArrayList GlobalList
{ 
  get 
  { 
     return ViewState["GlobalList"]; 
  } 
  set 
  { 
    ViewState["GlobalList"] = value; 
  } 
} 

You could store the List<> instance in the client session on the server side. Then on each request you will have access to the list in the session.

However, you should still be able to use viewstate, as long as the items in your List<> are serializable.

You should consider the amount of data being exchanged between the browser and web server when using viewstate. If your items are not unreasonably large and you will not have too many of them in the list then viewstate might not be unreasonable.

The code might look something like this.

private ArrayList GlobalList
{ 
  get 
  { 
     return ViewState["GlobalList"]; 
  } 
  set 
  { 
    ViewState["GlobalList"] = value; 
  } 
} 
深海里的那抹蓝 2024-12-12 12:03:03

如果您想使用 List 使其成为类级别变量,则可以使用类级别变量来保存发布后的值,然后它不会丢失该值。

you can use class level variable which hold the value after post if you want to use List make it class level variable then it wont loose the value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文