AFAIK,主要区别在于会话是每个用户,而缓存将用于应用程序范围的项目。如在其他答案中所述,您可以将每个用户的信息存储在缓存中,只要您提供密钥(通过会话或cookie)即可。然后,您将有更多控制权来使缓存中的项目过期,并对其设置依赖关系。因此,如果所讨论的DataTable会定期更改,则缓存可能是一个适当的选择。否则,如果是静态会话,则可能更合适。史蒂文·史密斯(Steven Smith)有一个关于dnrtv缓存的出色视频,值得一看。这实际上取决于您要实现的目标,获得的时间。关于在应用程序中存储状态的方式,还有其他一些可供考虑的选择。根据表的大小,您可以考虑将状态存储在cookie中(如果是敏感信息,则将其加密)。或者,如果它是应用程序范围的数据,则在页面或类上冷使用静态字段。也有Application对象。更新:我认为您必须问自己的关键问题是谁应该看到此数据。Are they going to access the data frequently? (不,不要打扰)。Is it going to change? (否,请使用静态字段或应用程序)。Is it acceptable for user a and user b to see the same results? (不,将缓存与包含用户名和搜索词的键一起使用。)。(是的,请使用搜索词的键来使用缓存)。不过,老实说,如果您的开发进度不理想,我会考虑将缓存/状态问题推迟到以后的日期-您甚至可能不需要它。性能调整的前三个规则是:1.测量,2.测量更多。3.再次测量...