0

除了我认为现在不是最好使用的 TempData 之外,在如何将用户数据从一个页面保存到另一个页面方面有哪些最佳实践?

您是否通常每次都返回数据库... ajax 与否...您每次都发出请求还是将其存储在请求对象或其他进程对象实例中?

我只是在寻找广泛的想法,因为我在网上查找这些东西不知所措……那里有很多东西,而且我也更容易通过堆栈获得一些见解。

4

1 回答 1

0

有几种选择。如果我们谈论的是内部请求,那么当然 ViewBag 是最好的选择。Intrapage(跨请求)然后最好的选择可能是隐藏字段,除非它是敏感数据。

页面之间,则有多种选择。您当然可以将数据作为查询字符串参数传递。Session 也提供了一个方便的选择,只要数据量小,如果 session 丢失也没关系(即,您可以重新获取或重新生成它)。在某些其他情况下,您可以使用隐藏字段将数据发布到另一个页面,但这在很大程度上应该不鼓励,因为您应该更喜欢使用 PRG(发布/重定向/获取)模式。

其他一些选项是使用上下文缓存HttpContext.Cache(我觉得这是错误的命名,但是很好)或将其保存在数据库的临时表中。如果您决定迁移到网络场,任何“内存中”选项都会存在可伸缩性问题(会话可以由数据库支持,但会减慢速度)。

这还取决于您在谈论什么数据。如果它是用户数据,那么另一种选择是将其存储在 cookie 中,或者使用表单身份验证 cookie 的用户数据部分,并创建自定义 IIdentity 对象。

最后,只是根据每个请求从其源重建数据。

于 2013-01-24T18:10:40.733 回答