我想在asp.net mvc应用程序中的不同步骤中构造一个对象,每一步都是一个不同的页面.您在快速Web.Forms应用程序中存储在Session中的那种东西.
阅读它,Session在我看来并不像asp.net MVC的那样.但是我无法真正想到这种情况的其他替代方案,因为TempData和ViewData似乎也不合适,所以也许我错了.
当然,我可以将4个步骤放在一个页面中并显示/隐藏,但这不是我对问题的看法.我想听听你对MVC中Session的看法,如果它对于这种多步骤问题是一个很好的方法,或者你倾向于以其他方式做到这一点.
这非常类似于ASP.NET MVC中的Session变量问题,除了我不是在寻找如何访问Session,但是如果它是解决这个问题的最好方法,或者在Asp中有更好的东西.净MVC.
提前致谢
Session没有什么非MVC,它是网络的重要组成部分,大多数网站都以某种方式使用它.你真的有两个主要选择.将对象存储在页面之间的数据库中(这意味着保存不完整的对象)或将其放入会话中.两者都有优点和缺点.
在会话中,您不必将部分对象保存到数据库,但如果用户离开或会话超时,则会丢失所有信息.它还可能导致每个用户更大的内存占用,当你进行扩展时,它会导致一些其他问题.(所有这些都可以在负载均衡器或中央会话存储上使用粘性会话来解决).
数据库方式在很多方面都比较好,但通常你不想将不完整的对象保存到数据库,一个折衷方法就是创建另一个表并保存序列化到该表的对象.它不会通过您的真实表,因此您不必妥协您的数据库约束.(你也可以在数据库中存储会话数据,基本上做同样的事情)
最后它是两种方式之间的判断,我多年来一直使用它们.