gpt4 book ai didi

.net - ASP.NET MVC - 跨 View 传递数据

转载 作者:行者123 更新时间:2023-12-04 08:28:56 26 4
gpt4 key购买 nike

我正在构建一个 MVC 应用程序。我的任务之一是建立一家商店。我设置了一个类似“向导”的 View 集,让用户填写不同类型的数据,直到操作结束,总共 7 个步骤。

我的问题是关于如何在所有这些 View 之间共享一些数据。

首先我使用老式的Session一切都在我的桌面上运行,但是当我最终将我的应用程序部署到我公司的托管服务器时,我遇到了异常,因为 Session在某些步骤中被随机删除。

现在我修改了所有内容以在 TempData 中设置我需要的任何数据。 ,并在每个步骤中刷新所有数据,它似乎工作正常。

我有点困惑!

我对所有这些结构感到困惑: session (我知道它来自 asp.net),ViewData , TempData和魔法ViewBag .

我读了很多,但我需要有人清楚地告诉我在这种情况下什么更适合我。

最佳答案

我会说 ViewBag 非常适合这样的事情。现在,您将 ViewBag 称为“魔术” View 包,但实际上它只是包装了 ViewData,它是 <string,object> 的字典。

ViewBag 的工作方式是它只是 ViewData 的动态包装器,因此当您请求某些内容时,比如说 ViewBag.ShoppingCart,它基本上会询问底层字典是否有一个名为“ShoppingCart”的条目,然后返回该项目。

更新 问题是我不记得 ViewBag 和 ViewData 是特定于 View 的,因此每当您点击不同的 View /操作时它们都会被清空。

除非您需要将 ShoppingCart(或向导进度)存储在数据库中,否则在您的情况下我会选择 ViewBag TempData :)

您还可以查看 Rachel Apple 的这篇文章,了解有关这三者的更多信息:

http://rachelappel.com/when-to-use-viewbag-viewdata-or-tempdata-in-asp.net-mvc-3-applications

(Ps。我建议您也阅读该帖子的评论以获得更公正的意见)

关于.net - ASP.NET MVC - 跨 View 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7267835/

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