gpt4 book ai didi

asp.net-mvc - asp.net mvc 发布数据和页面刷新( session 变量 vs tempData vs 检测 F5)

转载 作者:行者123 更新时间:2023-12-04 00:42:43 25 4
gpt4 key购买 nike

我正在自学 MVC,并且正在努力找出解决我问题的最佳方案。我有一个带有大量输入字段的搜索 Controller 。我还将有多个搜索字段重载,例如基本搜索高级搜索 searchByCategory 等。

当发布搜索表单时,我重定向到另一个显示搜索结果的操作。如果我按 f5,将再次触发 get 操作,而不是在我的帖子重定向到的操作中刷新搜索结果。理想情况下,我想在不使用查询字符串的情况下重定向到搜索结果 Action Method,或者检测何时刷新并重新查询数据库,并在同一个搜索 Controller 中使用不同的操作。我已经阅读了很多关于此的帖子,我能找到的唯一 2 个解决方案是使用 session 变量或 TempData。有人可以建议什么是最佳实践吗

最佳答案

来自评论大多数时候我更喜欢使用 TempData 代替 QueryString。这使网址保持干净。

问题

Can anybody advise as to what is the best practice

回答

一旦数据被发送到 Action Method 以从数据库中获取结果,据我所知,您可以使用 TempData 来存储发布的数据。它就像一个DataReader类,一旦读取,数据就会丢失。这样 TempData 中存储的数据将变为空。

var Value = TempData["keyName"] //Once read, data will be lost

因此,即使在读取数据后仍要保留数据,您可以像下面这样将其激活

var Value = TempData["keyName"];
TempData.Keep(); //Data will not be lost for all Keys
TempData.Keep("keyName"); //Data will not be lost for this Key

TempData 也适用于新的 Tabs/Windows,就像 Session 变量一样。

您也可以使用 Session 变量,唯一的主要问题是 Session 变量与 TempData 相比非常重。最后,您还可以跨 Controller /区域保存数据。

希望这篇文章能对您有所帮助。

关于asp.net-mvc - asp.net mvc 发布数据和页面刷新( session 变量 vs tempData vs 检测 F5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17180232/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com