gpt4 book ai didi

asp.net - 避免在 ASP.NET MVC 中使用 session 状态是一个好习惯吗?如果是,为什么以及如何?

转载 作者:行者123 更新时间:2023-12-02 09:24:22 26 4
gpt4 key购买 nike

它没有明确地写在某处,但在阅读了一些关于 ASP.NET MVC 的博客后我有这样的感觉。只是出于好奇,想在这里问一下。

更新:
我不是在询问服务器上的内存/存储/RAM 问题。对于他们来说,有一个解决方案可以在进程外存储 session 。我知道。我很好奇,是否有任何场景我们必须在 WebForms 中使用 Session,但我们现在可以在 MVC 中避免它,利用 MVC 提供的良好的结构化方式?

最佳答案

在 ASP.NET Web 窗体中,如果不使用 session ,在不同页面之间传递信息从来都不是特别容易。由于以回发为中心的模型,信息作为事件的一部分在服务器上可用,但通常在错误的页面中显示结果,因此需要在页面之间传递信息。

这往往会导致 session 的过度使用,在 session 中填充“当前”变量,旨在指示当前正在交互的对象是什么。这种过度使用反过来又使应用程序非常依赖于状态,并且更难以确定预期行为(“这个变量是否已填充?”“我有当前的订单 ID 吗?”)。

MVC 的构建理念是:您的网站是信息逻辑模型的 View 。它鼓励通过使用简单的 Controller 来响应具有作为 HTTP 请求的一部分传递的关键信息的操作来进行无状态操作。

由于这些属性, session 不再需要在 MVC 中执行基本任务,并且变得不适合以前看起来完全有效的选择。

<小时/>

从根本上来说, session 会污染 HTTP。它使请求(通常包含它们自己的状态)依赖于接收服务器的内部状态。这就是为什么它被视为一种邪恶的东西(尽管通常是实际且必要的)。

关于asp.net - 避免在 ASP.NET MVC 中使用 session 状态是一个好习惯吗?如果是,为什么以及如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5220980/

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