ASP.NET Web 表单跨<string>回发维护列表



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

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

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

但是,如果您需要在多个页面上保持这一点,那么评估SessionCache会更有意义。

如果每个用户的列表不同,或者可以在多个用户之间共享,我也会记住。在这种情况下,我会倾向于Cache

最后,在这一点上,我可能会被否决,但您也可以考虑使用SessionPageStatePersister类将ViewState存储在服务器端内存中的选项。

祝你好运!

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

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

最新更新