如何从重定向页面获取上一页的名称

时间:2014-07-08 07:31:33

标签: c# asp.net

我想获取上一页的名称,但问题是我的代码无法获取上一页的名称。例如,我有两个页面Previous.aspxNext.aspx。在Next.aspx页面中,我想要页面网址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;
}

2 个答案:

答案 0 :(得分:3)

以下是您如何实现这一目标:

1.您必须存储要回忆的页面的某个URL,例如在Page_Load()方法中使用ViewState:

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

2.从ViewState中检索网址:

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

3.使用此网址获取页面名称:

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

答案 1 :(得分: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('/');