IsPostBack是属于page类下面 只读属性(get)。其中上面[]包着的 简称为特性 简单说就是代码执行时 运行[]里面的对象类方法或者属性(内部利用反射原理)。

        //
        // 摘要:
        //     获取一个值,该值指示页是第一次呈现还是为了响应回发而加载。
        //
        // 返回结果:
        //     如果是为响应客户端回发而加载该页,则为 true;否则为 false。
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        [Browsable(false)]
        public bool IsPostBack { get; }

前端:

    <form id="form1" runat="server">
    <asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
        <asp:ListItem>1</asp:ListItem>
        <asp:ListItem>2</asp:ListItem>
    </asp:DropDownList>
    </form>

后台:

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Write(IsPostBack);
            Response.Write("<br/>");
        }

        protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
        {
            Response.Write("1111111111");
        }

第一次运行输出false 刷新也是false。

Page类的IsPostBack原理

注意这个时刻是get请求 报文中没有__VIEWSTATE

这个时候选择下请求 报文中存在__VIEWSTATE

Page类的IsPostBack原理

 

总结:服务端判断客户端提交的页面对象中 报文体是否存在__VIEWSTATE键,如果存在则设置为true 反之flase。

相关文章:

  • 2021-06-15
  • 2022-12-23
  • 2021-04-04
  • 2022-12-23
猜你喜欢
  • 2021-07-09
  • 2021-06-19
  • 2021-07-20
  • 2021-08-21
  • 2021-09-04
  • 2022-12-23
相关资源
相似解决方案