我正在研究项目管理Web应用程序.用户可以通过多种方式显示任务列表.查看列表页面时,他们单击任务并重定向到任务编辑页面.
由于它们来自各种方式,我只是好奇将用户重定向回调用页面的最佳方式.我有一些想法,但希望得到其他开发人员的意见.
你会在会话中存储呼叫网址吗?作为一个cookie?我喜欢使用对象处理重定向的概念.
我会使用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)
| 归档时间: |
|
| 查看次数: |
3948 次 |
| 最近记录: |