1

現在のページが EpiServer ページかどうかを知る必要があります。現在のページが開始ページかどうかを知る必要があるため、次のコード行を使用しています。

if(PageReference.StartPage.ID == CurrentPage.PageLink.ID)

これはすべての EPiServer で完璧に機能しますが、EPiServer 以外のページを使用している場合、CurrentPage は StarPage の値を返します。これは、EPiServer 以外のすべてのページが StartPage として扱われることを意味します (もちろん、if ステートメントで)。

私が考えた1つの解決策は、ページがEPiServerページであるかどうかを最初に確認することですか? しかし、これを行う方法がわかりません。ページのクラスを取得できますか、またはこれを達成するにはどうすればよいですか?

アイデアや提案はありますか?

前もって感謝します。

4

3 に答える 3

3

非 EPiServer ページは単なるカスタム aspx ページですか? これに問題がある場合は、ページのタイプを確認することで、現在のページが EPiServer ページから継承されているかどうかを確認できます。すべての EPiServer ページは PageBase を継承していると思います。

if (Page is EPiServer.PageBase) {...}
于 2011-04-28T15:24:09.983 に答える
0

EPiServerの操作を簡単にするための便利なコードの素晴らしいライブラリがあります。

EPiCode拡張ライブラリをダウンロードしてプロジェクトに追加します。

これには、使用できる拡張メソッドIsEPiServerPageがあります。メソッドソースは次のとおりです。

    public static bool IsEPiServerPage(this PageData page)
    {
        return page != null && page.PageLink != null && page.PageLink.ID > 0;
    }
于 2011-08-31T11:13:11.283 に答える
0

あなたが行ったのは良いことではありませんが、非EPiページを別のページタイプの実際のページインスタンスに接続したくない場合は、Request.Urlまたはファイル名を確認するのが最善の策だと思います.処理中の ASPX ファイル。

于 2011-04-28T17:00:55.530 に答える