注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

我只是一个人

我爱一个人

 
 
 

日志

 
 

【引用】如何在asp.net中实现返回上一页并刷新的功能   

2011-03-14 11:48:57|  分类: 网页制作--技巧| |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
最近在做一个网站,要让用户在执行了增加、删除或修改数据的操作后转到另一个页面上显示操作成功,然后再返回原来的页面。最开始用history.go(-1),这样能返回了,但是原来的页面没刷新。因为要返回的页面都不是相同的,所以没法用指定URL的方法来返回,还是要获得上一页的URL才行。看到网上说用Response.redirect(request.servervariables["http_referer"]) 这个可以,就试了下,结果不行。百度了下才知道这个在好多种情况下是无法正常取值的,我是用Response.redirect来转向的,所以request.servervariables["http_referer"]取来的值为空。看来还得再想别的办法,继续百度之,看到有说用Request.UrlReferrer来的。照着搜到的方法一试,终于成功实现返回并刷新了~~

 程序代码
protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.UrlReferrer != null)
                ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect(ViewState["UrlReferrer"].ToString());
    }

最后附上Request.ServerVariables取值的一些说明
下列情况是从浏览器的地址栏正常取得Request.ServerVariables("HTTP_REFERER")的:

1.直接用<a href>
2.用Submit或<input type=image>提交的表单(POSTorGET)
3.使用Jscript提交的表单(POSTorGET)
下面我们再看看Request.ServerVariables("HTTP_REFERER")不能正常取值的情况:
1.从收藏夹链接
2.单击'主页'或者自定义的地址
3.利用Jscript的location.hreforlocation.replace()
4.在浏览器直接输入地址
5.<%Response.Redirect%>
6.<%Response.AddHeader%>或<meta http-equiv=refresh>转向
7.用XML加载地址

另一种方法

在C# Web程序中,如为页面按钮写返回上一页代码

this.RegisterClientScriptBlock("E", "<script language=javascript>history.go(-2);</script>");

其中,history.go(-2),要写为-2,因在按钮事件触发前,已刷新一次页面,所以应是-2。

Response.Write("<script language=javascript>history.go(-2);</script>");

此处也要写为“-2”。跟直接写脚本的有所不同。

另一种方法:

protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            if (Request.UrlReferrer != null)
                ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
        }
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Redirect(ViewState["UrlReferrer"].ToString());
    }


 

  评论这张
 
阅读(186)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018