asp.net中几个网页跳转的方法及区别

1:注意:Response.Redirect("a.html")是不能跳出框架、IFRAME的。

可以使用

Response.Write("<script Language="Javascript">top.location="login.aspx";</script>");

  

asp.net中Page.ClientScript.RegisterStartupScript用法小结

http://blog.csdn.net/qiujialongjjj/article/details/6680252

 //ASP.NET后台页面跳转 
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>if(confirm('保存成功!是否继续添加?')){location.href='ProductonAdd.aspx'}else{location.href='ProductonList.aspx'}</script>");

//后台弹出确定框

ClientScript.RegisterStartupScript(GetType(), "message", "<script>alert('请正确输入!');</script>");

//ASP.NET后台页面跳转

Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "<script>alert('数据添加成功!');{location.href='ProductonList.aspx'}</script>");

或

Page.ClientScript.RegisterStartupScript(typeof(string), "", "<script>window.location.href='AdminMain.aspx';</script>");

//后台弹出文本框
ScriptManager.RegisterStartupScript(Page, typeof(string), "popUp", "window.open('rptView.aspx','打印预览','toolbar=no,location=no,scrollbars=yes,top=200px,left=200px,width=904px,height=650px')", true);

  

ASP.NET的Page类的RegisterStartupScript函数解析  

http://blog.163.com/budong_weimin_zh/blog/static/129198524201062024654838/

ScriptManager.RegisterStartupScript 方法

http://www.cnblogs.com/weicleer/archive/2012/11/28/2792421.html

备注:

使用 RegisterStartupScript 方法,可为与部分页面呈现兼容且不具有 Microsoft AJAX Library 依赖项的页面注册启动脚本块。 仅当正在注册该块的控件位于要更新的 UpdatePanel 控件内时,才将通过使用此方法注册的启动脚本块发送到页面。 若要在每次发生异步回发时都注册启动脚本块,请使用该方法的 RegisterStartupScript(Page, Type, String, String, Boolean) 重载。

如果要注册与部分页面更新无关的启动脚本,并且只想在初始页面呈现期间注册一次该脚本,请使用 ClientScriptManager 类的RegisterStartupScript 方法。 可以从页面的 ClientScript 属性获取对 ClientScriptManager 对象的引用。

RegisterStartupScript 方法所呈现的脚本块会在页面完成加载之时、但页面的客户端 onload 事件引发之前执行。 启动脚本块位于呈现的 ASP.NET 页面底部的 </form> 标记之前。

不能保证使用 RegisterStartupScript 注册的启动脚本块按照其注册顺序输出。 如果启动脚本块的顺序很重要,请使用 StringBuilder 对象将脚本块集中到一个字符串中,然后将它们作为单个启动脚本进行注册。  

    protected override void OnInit(EventArgs e)
    {
        if (Request.Cookies["userinfo"] != null && Request.Cookies["userinfo"]["UserCode"] != null)
        {
            //to do other thing
        }
        else
        {
            //Response.Write("<script>parent.location='../SysManage/login.aspx'</script>");
            Response.Write("<script Language="Javascript">window.location="../SysManage/login.aspx";</script>");
            Response.End();
            //Response.Redirect("../SysManage/login.aspx");//注:当网页回退时,上面两种方式并不能够返回
            return;
        }

        base.OnInit(e);
    }

  注意:

当网页回退时:
如果有iframe时,采用redirect方法是可以返回的,但是只是将iframe中的网页返回,此时显示是有问题的。
当采用write方法时,需要执行Response.End(); 否则子类会继续执行下去,响应请求。当调用end方法时,会立即停止该页的执行
原文地址:https://www.cnblogs.com/jingzhishen/p/3827237.html