日期:2014-05-18  浏览次数:20352 次

asp.net 中,用viewState 返回页面错误,高手指点?
具体如下:
1.先进入【审核列表】:

2.点击【查看审核流程】:

3.点击【审核】链接,转到审核页面:

4.填写审核意见,点击通过之后返回【查看审核流程】页面:

5.点击右上角的返回链接【出错】且跳转得刚才审核的页面:

6..点击右上角的返回链接应该跳转到【审核列表】:


这只是一个模块,很多页面用到该页面:
用到的代码如下:
C# code
 /// <summary>
    /// 加载时用到的ViewState
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
 protected void Page_Load(object sender, EventArgs e)
    {
        DoInit();
        if (!IsPostBack)
        {
            DoLoad();
            Session.Remove("AttachInfoList");//清空上传文件
            ddlspAudit.Attributes.Add("onchange", "changeShenheList()");
            if (Request.UrlReferrer != null)
            {
                ViewState["URL"] = Request.UrlReferrer.ToString();
            }
        }

    }



C# code

 返回按钮事件用到的代码如下:
    /// <summary>
    /// 返回
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btn_back_Click(object sender, EventArgs e)
    {
        if (ViewState["URL"] != null)
        {
            Response.Redirect(ViewState["URL"].ToString());
        }
    }



  高手指点一下,我这种问题如何解决?

------解决方案--------------------
报什么错
------解决方案--------------------
那只有跟踪一下你ViewState["URL"].ToString()的值到底是什么
------解决方案--------------------
url放地址栏里面或者隐藏域 就可以没有必要使用ViewState
------解决方案--------------------
你保存的就是上一个页面啊Request.UrlReferrer.ToString();

,你存列表页面啊


------解决方案--------------------
protected void btn_back_Click(object sender, EventArgs e)
{
string strUrl=Request.UrlReferrer.ToString();

if (!string.IsNullOrEmpty(strUrl))
{
Response.Redirect(strUrl);
}
}