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

问题描述 投票:0回答:2

我想获取上一页的名称,但问题是我的代码无法获取上一页的名称。例如,我有两页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;
}
c# asp.net
2个回答
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;

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('/');
© www.soinside.com 2019 - 2024. All rights reserved.