通常有必要了解调用 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 控件,代码如下:

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);
}

相关文章: