【发布时间】:2017-05-26 04:08:17
【问题描述】:
这更像是一个讨论,因为我试图找出在 .NET Core MVC
中获取/存储/检查数据对象的最简洁方法场景是这样的:
问题
用户登录到 webapp -> 服务触发创建用户对象(强类型列表) 此用户对象控制应用程序的外观和感觉,列表中的所有数据都是静态的。
此列表分配给 ViewBag 并在 Razor 页面上使用。
唯一的问题是每次后续页面更改或刷新都会再次拉取用户对象。
有些人可能认为它没有那么糟糕,但是这个对象通常需要大约 7 秒的时间来回火到呈现页面的客户端,并且在每个开始变得非常痛苦的页面上!
有针对性的解决方案
所以我的理论是,加载一次用户模型,包含一个名为“LastLoaded”的 DateTime 字段,然后将具有当前日期时间的用户模型写入 MVC 中某种形式的会话存储。
然后在每个页面上添加一些代码来检查 LastLoaded 字段,如果 datediff 大于 10 分钟,则重新加载用户对象。
所以我需要知道的是在 MVC 中存储 List 对象并让它在页面加载和刷新后仍然存在的最佳方法。然后如何检索该用户对象并将其应用于 ViewBag。
我非常愿意接受建议,即使我的前提存在缺陷并且有更好的方法来实现这一点。请告诉我您过去是否遇到过此问题以及您实施了哪些解决方案。
卡兹
【问题讨论】:
-
如何在页面加载后通过单独的服务调用加载 ViewBag 中的数据集,而不是传递数据集?听起来您想将这些数据的管理卸载到客户端,因此客户端负责获取/管理这些数据(无论是作为 cookie 还是其他内部存储)会更有意义
-
嘿@AllMadHare 我已经为许多其他事情做到了这一点,使用 API 调用和本地存储。虽然如果我为 User 对象这样做,它有点使剃刀无用,但我主要担心的是,这样做我实际上是在后台使用 HTML 网页和带有 Web API 项目的 jquery。一旦我使用 js 去 localstorage 我也会担心我会丢失我的强大模型
标签: c# asp.net-core-mvc