2009-09-25 63 views
0

我在頁面上使用帶有動態菜單欄的MasterPage。如果用戶請求重定向回登錄(主頁)頁面,我不想將它們註銷,但我確實想要隱藏菜單欄。目前我正在使用用戶是否通過身份驗證來控制菜單欄是否可見。如何在請求重定向時閱讀目標網址?

基本上,我想在登錄頁面時總是隱藏菜單欄。該菜單在頁面本身之前呈現,因此我需要能夠讀取重定向請求以查看登錄頁面是否是目的地。我嘗試了Response.RedirectLocation字段,但似乎爲空。

如何確定重定向請求是什麼?

回答

0

我認爲你應該讓它變得更加複雜。

如果您使用母版頁,只需在您的母版頁中公開您的內容頁可以調用並隱藏菜單的公共功能。所以在你的登錄頁面你總是會調用主頁面的隱藏菜單功能。

這裏是一個MSDN文章,解釋如何公開母版頁的鏈接:

http://msdn.microsoft.com/en-us/library/xxwa0ff0.aspx

編輯:你需要你的名字母版的類像MyMasterPage。然後,讓你的主人的aspx頁面確保您的繼承屬性是正確的:

Inherits="Your.Name.Space.MyMasterPage" 

然後在你的內容頁面,你應該只添加以下內容:

<%@ MasterType TypeName="Your.Name.Space.MyMasterPage" %> 

最後,你可以在你的主站訪問什麼現在你已經定義了它的類型:

Master.CallYourFunction(); 

這應該讓你工作,如果你按照這些步驟。

+0

這聽起來很合理,我會試試這個。謝謝 – James 2009-09-25 05:02:02

+0

我能夠在母版頁上定義公共Sub,但我沒有從邏輯頁面定義。登錄頁面在ASPX中引用主設備。我究竟做錯了什麼? – James 2009-09-25 05:18:14

+0

如果您的主頁面被稱爲'MyMasterPage',則必須在登錄頁面上執行此操作:((MyMasterPage)Master).HideMenuFunction()。 – 2009-09-25 05:26:07

0

使重定向發送原始URL作爲URL參數一樣

&origurl=http://www.domain.com/original_page 
0

如果你只是瓦納登錄頁面上隱藏菜單欄,然後​​它不會是困難的。你可以做的是你把Makeu欄放在Mater頁面的ContentPlaceHolder裏面。在您的登錄頁面上,您可以添加空白內容,這將從主頁面中覆蓋Menu ContentPlaceholder。

<asp:Content ID="Content2" ContentPlaceHolderID="MenuContent" Runat="Server"> 

這裏是母校頁面上聲明語法現在

<asp:ContentPlaceHolder id="MenuContent" runat="server"> Your Menu goes here </asp:ContentPlaceHolder> 

你做任何必須覆蓋默認的內容被顯示來自母校頁面菜單,在這裏你需要顯示菜單的其他頁面。

您可以通過Here瞭解有關覆蓋Mater Page默認內容的更多信息。