Asp.net mvc 5 ASP NET MVC 5会话状态

Asp.net mvc 5 ASP NET MVC 5会话状态,asp.net-mvc-5,Asp.net Mvc 5,我正在开发一个Intranet web应用程序,我使用相同的列表生成2个视图,列表每60秒更新一次 我的问题是“有没有更好的方法(安全方面的)来保存这个列表?”一般来说,MVC中的会话状态是自找麻烦的,MVC力求无状态(就像一般的网站一样)。它可能会在某一点或另一点上给您带来痛苦,因为它会使请求变得不确定 名单是如何更新的?这是文件吗?数据库?无论怎样,我觉得存储库模式都更有意义。在第一次请求时缓存它并保存上次更新的时间,然后在每次后续的Get-if-DateTime.Now>TimelastG

我正在开发一个Intranet web应用程序,我使用相同的列表生成2个视图,列表每60秒更新一次


我的问题是“有没有更好的方法(安全方面的)来保存这个列表?”

一般来说,MVC中的会话状态是自找麻烦的,MVC力求无状态(就像一般的网站一样)。它可能会在某一点或另一点上给您带来痛苦,因为它会使请求变得不确定


名单是如何更新的?这是文件吗?数据库?无论怎样,我觉得存储库模式都更有意义。在第一次请求时缓存它并保存上次更新的时间,然后在每次后续的Get-if-DateTime.Now>TimelastGett+1分钟时再次获取它并覆盖缓存。这比使用Session更容易测试和模拟。

所以如果我使用这样的东西会更好吗?那完全行得通。您可以使用像静态IEnumerable字段这样简单的方法,也可以使用像.net缓存实现(您链接的)这样更健壮的方法,如果需要,您可以自己构建一个超级深度缓存。挑选适合你需要的东西。我通常的模式是创建一个IFooRepository,然后我可以使用不同的缓存或不缓存来实现该存储库,并且只需向依赖项解析器注册我想要的实现。这允许您在需要时轻松删除缓存。有道理吗?太棒了!所以这是“正确的方法”?缓存=新缓存();缓存[“保存列表”]=列表保存;在ViewResult中,我想使用列表中的相同内容?列表=缓存[“保存列表”];我设法让它工作了,谢谢你的时间和帮助!:)