我目前正在实施一个订单向导,它包含几个步骤,但每个产品都有所不同。
我必须在步骤之间保存状态,因此用户可以来回跳转并进行调整。
要做到这一点,经过一些浏览后,似乎有两种方法可以做到这一点:
我想知道为什么我会选择其中一种方法。第一个已经在2009年的MVC2中被引入,并且这也与关于Html.Serialize的所有帖子的日期一样久,所以我想知道它是否仍然是可接受的方式。特别是考虑到它远离ViewState,它在ASP.NET中远非安全。
会话似乎是之后最合乎逻辑的选择,但我不知道其缺点是什么。如果应用程序池决定回收,我的会话会丢失吗?会话是服务器端的吗?
谢谢!
小小的注意事项:此时不想用Javascript做这件事,我想保留这个服务器端。因此,我没有将其列为第三种选择。
答案 0 :(得分:0)
如果用户在向导上打开了多个标签,则会话的生命周期有限,无法正常运行。
将数据保存在隐藏字段中更加清晰,因为它实际上是无状态的,除非它太大或者出于安全原因必须保留服务器端。
我建议您尝试使用隐藏字段,只有在出现问题时才切换到会话。