2014-07-08 84 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('/'); 
相關問題