0

您好,我有一个小List<string>东西,我想在一个页面上跨回发维护。该列表不会包含超过 10 个项目,每个项目最多 40 个字符(无敏感数据)。

我知道有人问过类似的问题,但我对将其存储在ViewStateor中有些矛盾Session。我听说即使很小的字符串值也会导致 ViewState 值的大小大幅增加。我想遍历 List 并使用 Linq 来查询它,但我最好使用string[]数组,这个 List(大小不大)可以存储ViewState还是应该存储它Session?谢谢你。

4

2 回答 2

2

我会更关心 this 的范围List<>。如果它仅限于这一页,那么我认为使用ViewState;是完全可以接受的。这正是它的本意。

Session但是,如果您需要在多个页面上保留它,那么评估or会更有意义Cache

我还要记住每个用户的列表是否不同,或者是否可以在多个用户之间共享。在那种情况下,我会倾向于Cache.

最后,我可能会因为这个而被遗忘,但您也可以查看使用SessionPageStatePersister类将 存储ViewState在服务器端内存中的选项。

祝你好运!

于 2012-04-03T23:16:42.733 回答
1

如果您不滥用它,那么在 ViewState 中存储东西并不是一个糟糕的主意。如果列表很小并且只在一页上有意义,那就去吧。

只要记住 ViewState 是可以被篡改的,所以如果你不想让客户端知道它,那么你就是黄金。否则将其存储在 Session 中。

于 2012-04-03T22:57:09.607 回答