2

このスレッドを読んでも、私の質問には実際には答えませんでした。かなりの数の提案があったので、それらが正しい方向に進んでいるかどうかはわかりません 。aspページに関するマスターページのコンテンツフィルタリング

私が持っているのは1つのマスターページがあるサイトで、その中にはすべてのページが使用するグローバルフッターがあります。1ページ(つまりログインページ)のフッターを削除したいのですが、他のすべてのマスターページのコンテンツはそのままにしておきます。

このログインページ専用に別のマスターページを作成できることは知っていますが、やり過ぎのようです。この特定のページだけがフッターを非表示にしてから他のすべてのページに表示するというロジックを組み込む方法はありますか?

ヒント/提案をありがとう。

編集:コードビハインドにはすでにページロードサブがありました。追加するMasterPage_Footer.Visible = False必要があるのは、ユーザーがログインしていないときのIfステートメントで、ユーザーがログインしているTrueときに設定することだけでした。魅力のように機能します。すべての提案をありがとう。

4

2 に答える 2

7

必要に応じてコンテンツページがデフォルトの動作を上書きできるように、MasterPageのプロパティを公開します。

マスターページ:

private bool showFooter = true;

public bool ShowFooter { get {return showFooter;} set {showFooter = value;} }

protected void Page_Load(object sender, EventArgs e)
{
    footerControl.Visible = showFooter;
}

プロパティにアクセスする必要があるコンテンツページのaspxに次の行があることを確認してください。

<%@ MasterType TypeName="XXX" %>

およびコンテンツページのコードビハインド:

protected void Page_Load(object sender, EventArgs e)
{
    Master.ShowFooter = false;
}
于 2012-04-24T17:14:12.413 に答える
1

MasterPageで:

protected void Page_Load(object sender, EventArgs e)
{
   var page = HttpContext.Current.Handler as Page;
   FooterControl.Visible = HttpRequest.IsAuthenticated && !(page is LoginPage)
}
于 2012-04-24T17:09:54.693 に答える