2014-07-08 88 views
-1

我想获取上一页的名称,但问题是我的代码无法获取上一页的名称。例如,我有两页Previous.aspxNext.aspx。在Next.aspx页面中,我需要页面URL的页面名称Previous.aspx。我怎样才能做到这一点?我在Next.aspx页面尝试了以下代码。如何从重定向页面获取上一页的名称

public string GetPreviousPageName() 
{ 
    string Path = System.Web.HttpContext.Current.Request.UrlReferrer.AbsolutePath; 
    System.IO.FileInfo Info = new System.IO.FileInfo(Path); 
    string pageName = Info.Name; 
    return pageName; 
} 
+0

你的意思是标题标签?页面标题。 –

+0

@Tuğrul是的,我想要页标题 – user1659510

+0

我会使用Cookies。保存并加载。饼干[ “标题”] = Page.Title; –

回答

3

这里是你如何实现这一目标:

1.You有一些地方保存要调用页面的URL,例如在Page_Load中使用ViewState的()方法:

if(!IsPostBack) 
{ 
    ViewState["ReferrerUrl"] = Request.UrlReferrer.ToString() 
} 
从ViewState中

2.Retrieve网址:

string referrerUrl = (string) ViewState["ReferrerUrl"]; 

这个网址页面3.Get名称:

System.IO.FileInfo fileInfo = new System.IO.FileInfo(referrerUrl); 
string pageName = fileInfo.Name; 
+0

@AdrianoRepetti你说得对。我编辑了答案。 – Kao

+0

此行发生异常System.IO.FileInfo fileInfo = new System.IO.FileInfo(referrerUrl);该值不能为空参数名称:fileName – user1659510

+0

Thanx @Kao它的运行完美。我纠正了我的异常问题 – user1659510

0

在控制器

// Home is default controller 
     var controller = (Request.UrlReferrer.Segments.Skip(1).Take(1).SingleOrDefault() ?? "Home").Trim('/'); 
// Index is default action 
     var action = (Request.UrlReferrer.Segments.Skip(2).Take(1).SingleOrDefault() ?? "Index").Trim('/'); 

在授权类

 var Url= filterContext.HttpContext.Request.UrlReferrer; 
// Home is default controller 
    var OldcontrollerAuth = (((Url != null) ? Url.Segments.Skip(1).Take(1).SingleOrDefault() : "Home") ?? "Home").Trim('/'); 
// Index is default action 
    var OldActionAuth = (((Url != null) ? Url.Segments.Skip(2).Take(1).SingleOrDefault() : "/") ?? "/").Trim('/'); 
相关问题