ASP.NET:如何处理所有页面重定向?

时间:2012-01-09 09:31:13

标签: c# asp.net

在ASP.NET页面中,是否有任何实用的方法可以处理以下所有内容:

  1. 回发
  2. 用户点击页面中的链接时的重定向
  3. 用户在浏览器中更改网址字段时的重定向
  4. 只有一个网页控件(或方法)?

    TQ

2 个答案:

答案 0 :(得分:1)

可以在服务器端处理回发

另外两个 - 链接点击或网址字段应该仅使用Javascript处理。

更新: 您可以使用 jQuery 来显示问题

中提到的“加载动画”
$(window).unload( function () { alert("Bye now!"); } );

一旦用户试图离开页面,这将发出警报。您可以更改它,以便显示动画gif图像。

这必须经过测试。我认为这毫无意义;在浏览器开始加载新页面之前,不太确定gif将显示多长时间。

编辑:

正如我在评论中提到的,您可以使用javascript发布回发 所以,根据我的上一次编辑

$(window).unload( function () { __doPostBack("leaving"); } );

将向服务器发出回发消息,您可以通过以下方式捕获它:

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    this.PreLoad += (sender, args) =>
                        {

                            this.ClientScript.GetPostBackEventReference(this, "arg");

                            if (!IsPostBack) { return; }

                            string __targetaction = this.Request["__EVENTTARGET"];
                            string __args = this.Request["__EVENTARGUMENT"];

                            if (string.IsNullOrEmpty(__args)) return;

                            if (__targetaction == "leaving")
                            {
                                doSomething();
                            }
                        };
}

然后再次,我不太确定这会有用,因为用户正在离开页面。

答案 1 :(得分:-1)

<强>回发
在这个Page.IsPostBack将是= true

用户点击页面中的链接时的重定向
在这种情况下,您将在referrer中获得价值。您可以使用Request.ServerVariables [“http_referer”]或Request.UrlReferrer

用户在浏览器中更改网址字段时的重定向
否则这是第三种情况