• asp.net 视图状态原理


    万维网(world wide web)的基本协议是 HTTP 协议,是一种无状态的协议,每一次页面发出的请求对于服务器来说都是新的。

    ASP.NET Framework 成功突破的 HTTP 协议的限制,例如给Label 空间的 Text 属性赋一个值,Label 会在页面多次请求之间保存这个值,那这个值是如何保存的呢?

    下面请看代码:

    -----------------------------------------------------------------------------------------------------

    <%@ Page Language="C#" Trace="true" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <script runat="server">

        protected void Button1_Click(object sender, EventArgs e)

        {

            Label1.Text = (Int32.Parse(Label1.Text) + 1).ToString();

        }

    </script>

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head runat="server">

        <title></title>

    </head>

    <body>

        <form id="form1" runat="server">

        <div>

            <asp:Label ID="Label1" runat="server" Text="0"></asp:Label><br />

            <asp:DropDownList

                ID="DropDownList1" runat="server">

                <asp:ListItem Text="选择框" Value="0"></asp:ListItem>

                <asp:ListItem Text="选择1" Value="1" />

            </asp:DropDownList>

        </div>

        <asp:Button ID="Button1" runat="server" Text="Button" onclick="Button1_Click" />

        </form>

    </body>

    </html>

    ---------------------------------------------------------------------------------------

    我们运行了以上代码就会发现在生产的HTML代码中存在 <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNjY2NzE5NTQ5D2QWAgIED2QWAgIBDw8WAh4EVGV4dAUBNWRkZBLujmFDkSLFCddbESB5E6G9ib0WjFb9EjqblCn46L0N" />

    ASP.NET FrameWork 使用了__VIEWSTATE 来保存页面的状态,这个隐藏的表单包含了页面所有空间的属性与值,当页面回传服务器的过程中,Asp.net Framework 就对这个字符窜就行分解,重建保存在视图状态中的所有属性的值。

    默认情况下ASP.NET 是启用视图状体的,如需要查看具体情况可以在 @Page 中 启用 Trace = "true" 页面跟踪。

  • 相关阅读:
    Django(二)
    Django(一)
    MYSQL理论知识汇总
    默认参数
    深浅拷贝和赋值关系
    bootstrap常用知识
    jQuery常用功能代码
    java集合框架知识总结
    Mysql数据库SQL语句整理
    基于IO流的模拟下载文件的操作
  • 原文地址:https://www.cnblogs.com/9988/p/2152152.html
Copyright © 2020-2023  润新知