• ASP.NET_0304_ASP.NET 重定向:调用 ASP.NET 网页的方式


    通常有必要了解调用 ASP.NET 网页的方式:是由原始请求(HTTP GET)、回发(HTTP POST)、来自其他页的跨页发送(HTTP POST)调用的,还是由来自其他页(使用 Transfer 方法或使用浏览器中的回调)的传送调用的。Page 类公开可用于确定页调用方式的属性集。

    检查以下 Page 类属性的值,然后参照下表来确定页的调用方式:

    • IsPostBack
    • PreviousPage
    • IsCrossPagePostBack
    • IsCallback

    下表列出了页调用方式及对应的 Page 属性值。

    调用方法

    属性值

    原始请求

    • IsPostBack 设置为 false。
    • PreviousPage 设置为 null(在 Visual Basic 中为 Nothing)。
    • IsCallback 设置为 false。

    回发

    • IsPostBack 设置为 true。
    • PreviousPage 设置为 null(在 Visual Basic 中为 Nothing)。
    • IsCallback 设置为 false。

    跨页发送

    • IsPostBack 设置为 false。
    • PreviousPage 引用源页。
    • IsCrossPagePostBack 设置为 true。
    • IsCallback 设置为 false。

    服务器传输

    • IsPostBack 设置为 false。
    • PreviousPage 引用源页。
    • PreviousPage 中引用的 IsCrossPagePostBack 设置为 false。
    • IsCallback 设置为 false。

    回调

    • IsPostBack 设置为 false。
    • PreviousPage 设置为 null(在 Visual Basic 中为 Nothing)。
    • IsCallback 设置为 true。
    说明

    确保对 PreviousPage 中引用的页的 IsCrossPagePostBack 属性进行测试。当前页的 IsCrossPagePostBack 属性始终返回 false。


    演示调用 ASP.NET 网页的方式

    原始请求与回发

    新建一个页面,放一个 Button 控件,代码如下:

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Response.Write("原始请求:<br>");
            Response.Write("IsPostBack=" + IsPostBack.ToString() + "<br>" +
                "IsCallback=" + IsCallback.ToString());
        }
        else
        {
            Response.Write("回发:<br>"); Response.Write("IsPostBack=" + IsPostBack.ToString() +
                "<br>" + "IsCallback=" + IsCallback.ToString());
        }
        Response.Write("<br>PreviousPage =" + PreviousPage);
    }

    说明:由于不存在页面引用,PreviousPage 引用为 null;当第一次请求该页面时,IsPostBack为 false,IsCallback为 false;点击页面按钮后,IsPostBack 变为 true,IsCallback 仍为 false。

    回调

    IsCallback 为 true,而 PreviousPage 引用必为 null,不用解释。关键是 IsPostBack 为 false,与“原始请求”和“回发”相比,就上边的例子,你再点按钮,IsPostBack 也不会为 true,始终为 false。也就是说,每次点击按钮,都相当于第一次请求这个页面。

    跨页发送与服务器传输

    第三篇“如何将 ASP.NET 网页发送到另一页”例子使用了 Button 控件的 PostBackUrl 属性是跨页发送,而第二篇的例子使用了 @ PreviousPageType 指令是属于服务器传输。

  • 相关阅读:
    MySQL锁总结
    DDL和DML
    字节、字、位、比特之间的关系
    Mysql数据库、表设计规范指南
    Mysql性能优化关键配置指南
    3.python正则匹配不到内容时消耗大量内存
    1. postman使用
    2. python提示:TypeError: unhashable type: 'list'
    14. selenium的Page Object模型
    12.unittest的学习
  • 原文地址:https://www.cnblogs.com/liuning8023/p/2166699.html
Copyright © 2020-2023  润新知