将用户从编辑页面重定向回调用页面

mat*_*uma 7 asp.net redirect

我正在研究项目管理Web应用程序.用户可以通过多种方式显示任务列表.查看列表页面时,他们单击任务并重定向到任务编辑页面.

由于它们来自各种方式,我只是好奇用户重定向回调用页面的最佳方式.我有一些想法,但希望得到其他开发人员的意见.

你会在会话中存储呼叫网址吗?作为一个cookie?我喜欢使用对象处理重定向的概念.

Tom*_*Tom 5

我会使用ViewState存储引用URL .如果打开多个浏览器窗口,将其存储在页面范围之外(即在会话状态或cookie中)可能会导致问题.

下面的示例验证页面是在内部调用的(即不直接请求),并在用户提交响应后退回到引用页面.

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (Request.UrlReferrer == null)
        {
            //Handle the case where the page is requested directly
            throw new Exception("This page has been called without a referring page");
        }

        if (!IsPostBack)
        {   
            ReturnUrl = Request.UrlReferrer.PathAndQuery;
        }
    }

    public string ReturnUrl
    {
        get { return ViewState["returnUrl"].ToString();  }
        set { ViewState["returnUrl"] = value; }
    }

    protected void btn_Click(object sender, EventArgs e)
    {
        //Do what you need to do to save the page
        //...

        //Go back to calling page
        Response.Redirect(ReturnUrl, true);
    }
}
Run Code Online (Sandbox Code Playgroud)