asp.net - 无状态的 asp.net 应用程序和 ViewState

标签 asp.net .net webforms

微软文档 http://www.asp.net/aspnet/overview/developing-apps-with-windows-azure/building-real-world-cloud-apps-with-windows-azure/web-development-best-practices鼓励保持 Web 应用程序无状态,但也提到现实世界的应用程序需要存储数据,建议

“不要将其存储在 Web 服务器上。您可以通过其他方式存储状态,例如在客户端的 cookie 中或在进程外服务器端使用缓存提供的 ASP.NET session 状态”。

按照这个逻辑,在 ASP.Net Web Forms 应用程序中使用 ViewState 是有状态的还是无状态的?它保存在客户端,与上述 cookie 相同。假设我不使用任何 Session 和 Application 来存储数据的理想情况。

最佳答案

当然;在无状态方面,使用 ViewState 就像使用 cookie 一样。

请注意,Web 窗体是一种过时的技术,MS 和开发社区已经放弃了它。您应该查看 Razor 模板,这是一种更轻量级和更灵活的方法来呈现 asp.net web 应用程序。

膨胀是 ViewState 中保存的数据量的一个大问题,虽然如果您正在创建部门 CRUD 应用程序,这可能没问题,但它可能不适用于针对移动设备的东西。

此外,Web 窗体生成非常特殊的 HTML,这使得现代客户端技术难以使用。

Here's a link to a pretty good article关于 Razor 模板的兴起和网络表单的衰落。

关于asp.net - 无状态的 asp.net 应用程序和 ViewState,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36534202/

相关文章:

c# - 在 asp.net mvc View 模型上抑制来自 Resharper 的可能的空引用异常消息

c# - 如何让 ASP.NET 按钮执行 jQuery 代码

C# Dll导入麻烦

c# - 将 "C# friendly type"名称转换为实际类型 : "int" => typeof(int)

c# - 无法使NLog从代码中以数字/整数/长整数形式发送字段

c# - 具有存储库模式的 Entity Framework 插入多对多

c# - 当表达式设置值时不显示 SSRS 外部图像

javascript - 获取 div javascript 文件中的按钮

javascript - 为什么 WebForms 不断呈现这个 data- 属性?

c# - 如何在标记中添加项目以供用户控制?