1

特定のページ タイプ(ContentPage と名付けました)のページのみを含むホームページ ナビゲーションを表示する ASP.NET ユーザー コントロールを構築したいと考えています。

公開されたページのデータベース テーブルでは、この情報は各ページ (列PageTypeID) に存在しますが、コードから Composite API 経由でアクセスする方法が見つかりません。

using(var conn = new DataConnection())
{
    var siteMapNav = new SitemapNavigator(conn);
    var pages = siteMapNav.CurrentHomePageNode.GetPageNodes(SitemapScope.DescendantsAndCurrent);
    // what now?
}

C# からページの PageType 情報にアクセスするにはどうすればよいですか?

4

2 に答える 2

2

データ接続を使用して、IPage.PageTypeId でページ タイプを検索し、SitemapNavigator からの結果を組み合わせることができます。

using (var conn = new DataConnection())
{
    Guid pageTypeIdInQuestion = Guid.Empty; // put type id here

    var siteMapNav = new SitemapNavigator(conn);
    var pagesOfDesiredType = conn.Get<IPage>().Where(f => f.PageTypeId == pageTypeIdInQuestion).Select(f => f.Id);
    var pages = siteMapNav.CurrentHomePageNode.GetPageNodes(SitemapScope.DescendantsAndCurrent).Where(f=> pagesOfDesiredType.Contains(f.Id));
}

ここで取得した結果をキャッシュし、IPage および IPageStructureの追加/更新/削除イベントでフラッシュすることを検討してください。

于 2012-08-27T13:42:29.760 に答える