我想获取上一页的名称,但问题是我的代码无法获取上一页的名称。例如,我有两个页面Previous.aspx
和Next.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;
}
答案 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('/');