asp.net返回上一页

方法一:
private void Page_Load(object sender, System.EventArgs e)
         {
            
             ViewState["submittimes"]=Convert.ToInt32(ViewState["submittimes"])+1;
                         if(!Page.IsPostBack)
             {
                 ViewState["submittimes"]=1;


             }
         }

页面:
<INPUT type="button" value="Button" οnclick='history.go(-<%= (int)ViewState["submittimes"] %>)'>  

方法二:
<a href=<%=request.serverVariables("Http_REFERER")%> >
    <asp:image ID="imgcancel" Visible="false"
    ImageUrl="images/cancel.GIF"
    AlternateText="取消当前操作" runat="server" />
</a>



方法三:

in one example application of microsoft,(i forgot the name)
using the following method
in Page_Load
if (!IsPostBack)
{
ViewState["UrlReferrer"] = Request.UrlReferrer.ToString();
}

for go back button click
private void btnGoBack_Click(object sender, System.EventArgs e)
{
       Response.Redirect((String) ViewState["UrlReferrer"]);
}

The problem is in some cases, Request.UrlReferrer will be null if you use firewall

方法四:ASP.NET返回上一页并刷新

     最近在做一个网站,要让用户在执行了增加、删除或修改数据的操作后转到另一个页面上显示操作成功,然后再返回原来的页面。最开始用 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加载地址

方法一:
在asp.net的aspx里面的源代码中

浅析:这个是用了HTML控件,通过一个onclick的事件,调用了javascript中的一个方法就可以了。这个是最简单的了,也同样适用于静态页面,ASP页面等。

方法二:

利用Reponse.write
如果你对ASP有一定的了解,那么对Response.write这个东东就不会陌生了,方法一是直接有HTML页面中实现,则这个则是在后台环境中实现(这个说法好像不是很规范,呵呵)

Response.write("//<![CDATA[ history.go(-2); //]]> )

返回前一页


这里为会么要采用-2的值呢,我个人认为是这样的:因为在asp.net中的页面,当你按下一个button后,由于页面中会实现page.postback的缘故,实际上在这其中是刷新了两次页面,我们要的是第一次的,所以就......


方法三

利用Response.Redirect() 或 server.transfer()


在page_load中加入
if(!IsPostBack)
ViewState["retu"]=Request.UrlReferrer.ToString();

而在在返回按钮事件中
Response.Redirect(ViewState["retu"].ToString());
或Server.Transfer (ViewState["retu"].ToString());


浅析:
Request.UrlReferrer可以获取客户端上次请求的url的有关信息,我们在使用这个的时候最好对其进行一个判断

if(ViewState["UrlReferrer"]!=null)

Response.Redirect(ViewState["UrlReferrer"].ToString();

else
{
Response.write("对不起,当前是最前页码“);


这样才好使一点点喔
}

以下这段来自:http://stswordman.cnblogs.com/archive/2006/06/12/423910.html
在使用Request.UrlReferrer时还要注意:
1. 如果上一页面使用document.location方法导航到当前页面,Request.UrlReferrer返回空值
2. 如果有A,B两个页面,在浏览器中直接请求A页面,在A页面的中Page_Load事件中导航到B 页面,则 Request.UrlReferrer返回空。因为 在Page_load事件中页面还未初始化,所以无法记录当前页的信息,导航到b页面也就无法获得上一页面的信息
3. 点击刷新按钮不会改变Request.UrlReferrer


方法四:

这个方法估计很少人用,不过我试了一下,也还很不错喔

在button的onClick事件中输入

this.RegisterClientScriptBlock("e", "//<![CDATA[ history.go(-2); //]]> ");

一样可以 返回到上一页


方法五

这种方法也比较麻烦,不建议大家使用,这个好像是ASP里面的。

 


这 里还要啰嗦一下用Javascript来实现与用Response.redirect()来实现的一点点区别,如果你是想保留你填的数据,那就要用 history.go();这个东东,如果你只是直接返回不用做任何操作,你就可以用reponse.redirect()了.


.bg {background:#fafafa url(../images/company_39.jpg) 20px center no-repeat;}

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值