if (!IsPostBack)
        {
            //上一页地址
            ViewState["returnPage"] = Request.UrlReferrer.ToString();
        }ViewState["returnPage"] 得到是全路径:http://localhost:8582/web/ArchiveMgr/ArchiveInput.aspx我点击返回按钮,后台代码写上:
                Server.Transfer( ViewState["returnPage"].ToString() );  将报错。
错误信息为:子请求“http://localhost:8582/web/ArchiveMgr/ArchiveInput.aspx”的路径无效。应为虚拟路径。所以我想获取 虚拟路径,请问怎么弄?

解决方案 »

  1.   

    建议用history.go(-1);前台脚本去做。
      

  2.   

    他们讲history.go(-1) 达不到他们要求,说就用后台代码来做,用subString截取恐怕不准确吧...哎,头大。
      

  3.   

      什么不准确哦。
      requst.host 再用REPALCE 一替换就出来了。换了域名 主机什么 的 都一样的可以用。URL是有规律的哦。我觉得 LZ 的要求 有很多种方法可以做到的。
      

  4.   

        protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Attributes["onclick"] = "javascript:history.go(-1);return false;";
        } 
      

  5.   

    Server.Transfer 必须用虚拟路径 
    可用Response.Redirect
    或根据/最后位置截取最后的字符串
      

  6.   

        protected void Page_Load(object sender, EventArgs e)
        {
            Button1.Attributes["onclick"] = "javascript:history.go(-1);return false;";
        } 这样也是在后台, 不能达到要求?
      

  7.   

    Page.RegisterStartupScript("", "<script language=javascript>parent.location.href='Login.aspx'</script>");这样可以的
      

  8.   

    你用  ViewState["returnPage"] = Request.UrlReferrer.ToString();来获取本页的地址,然后赋值给一个字符串
    然后用字符串截取的功能,截取,截取到你认为可以了
    比如说D:\install\优化大师\Backup\ActiveX,截取到D:\install\优化大师
    然后加上你想链接的页面,
    比如说  water\1.aspx,把两个字符串相加,D:\install\优化大师\water\1.aspx,
    然后用Response.Redirect("D:\install\优化大师\water\1.aspx", false);即可
    亲自测试过,绝对好使
    以上代码是c#写的,事件是按钮的单击事件
      

  9.   

    保存前一页urlViewState["url"] = Request.ServerVariables["HTTP_REFERER"].ToString();