它没有明确地写在某处,但在阅读了一些关于 ASP.NET MVC 的博客后我有这样的感觉。只是好奇,就想在这里问一下。
UPDATE:
我不是在询问服务器上的内存/存储/RAM 问题。对于他们来说,有一个解决方案可以将会话存储在进程外。我知道。我很好奇,是否有任何场景我们必须在 WebForms 中使用 Session,但我们现在可以在 MVC 中避免它,利用 MVC 提供的良好的结构化方式?
在 ASP.NET Web 窗体中,如果不使用会话,在不同页面之间传递信息从来都不是特别容易。由于以回发为中心的模型,信息作为事件的一部分在服务器上可用,但通常在错误的页面中显示结果,因此需要在页面之间传递信息。
这往往会导致会话的过度使用,在会话中填充“当前”变量,旨在指示当前正在交互的对象是什么。这种过度使用反过来又使应用程序非常依赖于状态,并且更难以确定预期行为(“这个变量是否已填充?”“我有当前的订单 ID 吗?”)。
MVC 的构建理念是:您的网站是信息逻辑模型的视图。它鼓励拥有无国籍的通过使用简单的控制器来响应具有作为 HTTP 请求的一部分传递的关键信息的操作。
由于这些属性,会话不再需要在 MVC 中执行基本任务,并且变得不适合以前看起来完全有效的选择。
从根本上来说,会话污染 HTTP。它使请求(通常包含它们自己的状态)依赖于接收服务器的内部状态。这就是为什么它被视为一种邪恶(尽管通常是实际且必要的)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)