---
title: "MVCレンダリングのためのコンテンツ依存関係の設定"
slug: "configure-content-dependencies-for-an-mvc-rendering"
abstract: "MVCレンダリングのコンテンツ依存関係をどのように指定するかを示しています"
---
# MVCレンダリングのためのコンテンツ依存関係の設定

レンダリングはデータソースプロパティ(またはデータソースを指定しない場合はページアイテム)を使ってコンテンツと関連付けます。コントローラーやRenderingContext.Current.RenderingオブジェクトのItemまたはItemsプロパティを使ってビューコード内でコンテンツにアクセスできます。

しかし、レンダリングデザインの上、アイテム(または複数のアイテム)を超えて関連するアイテムをナビゲートする必要がある場合もあります。例えば、データソースを実際のコンテンツのフォルダやコンテナとして使うことができます。この場合、データソースプロパティをフォルダアイテムに設定し、RenderingContext.Current.Rendering.Item.Childrenオブジェクトを使ってコントローラーやビューコードでコンテンツにアクセスする必要があります。

もう一つの例はブレッドクラムレンダリングです。これを使って現在のページ項目の祖先をナビゲートできます。一般的に、レンダリングはデータソースの項目(または複数の項目)をいくつかの依存関係に拡張することがあります。これらの依存関係は系譜依存関係や関連する依存関係に分類できます。

これらのコンテンツ依存関係は、Sitecoreでレンダリングアイテムに指定できます。これは、部分的な[HTMLキャッシュクリア](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/configure-html-caching.html "Configure HTML caching") リングやページコンテンツ検索などの機能を使う場合に重要です。

レンダリングコンテンツ依存関係を設定するには:

1.  コンテンツツリー内のレンダリング定義項目に移動します。
    
2.  **コンテンツ依存**関係フィールドで1つ以上のオプションを選択してください:
    
    ![Content Dependencies field](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/dependencies.png)
    
    選択肢は以下の通りです:
    
    -   **先祖**
        
        レンダリングでは、データソースの項目の祖先を用います。
        
    -   **親**
        
        レンダリングはデータソースの親項目を使用します。
        
    -   **兄弟姉妹**
        
        レンダリングではデータソースのアイテムの兄弟姉妹を使用します。
        
    -   **関連項目**
        
        レンダリングでは、データソースの関連項目を使用します。
        
    -   **再帰関連項目**
        
        このオプションを他のオプション( **関連アイテム**を除く)で使用すると、そのオプションの関連アイテムもレンダリングで使用されることを示します。例えば、このオプションを**Ancestors**オプションで使うと、すべての祖先とその関連アイテムがレンダリングで使用されていることを示します。このオプションは他の系譜オプションと連携して動作するよう特別に設計されています。単独で使用する場合は**Related Items**と同じ仕組みで動作します。その場合は**Related Items**を使いましょう。
        
    -   **子供たち**
        
        レンダリングはデータソースの項目の直接子を使用します。
        
    -   **子孫**
        
        レンダリングはデータソースのアイテムの子孫を使用します。
        

## 新しいコンテンツ依存オプションを作成する

デフォルトのコンテンツ依存オプションがニーズに合わない場合は、自分で作成することもできます。

オプションを作成するには:

1.  コンテンツツリーで、*Item*テンプレート(*sitecore/templates/System/Item*)に基づいて、ここにオプションアイテムを作成してください:*/sitecore/system/Settings/Layouts/Renderings/Content Dependency Types*、。
    
2.  オプションを検査し、関連する依存関係をパイプライン結果に追加するプロセッサを追加してgetRenderingContentDependenciesパイプラインを拡張します。典型的なプロセッサ実装は以下の通りです:
    
    public void Process(GetRenderingContentDependenciesArgs args)
    {
     if (args.Datasource == null || args.Datasource.Count == 0)
     {
     return;
     }
    
     if (args.RenderingItem?.ContentDependencies.Contains("THE OPTIONS ITEM ID HERE"))
     {
     var result = new List<ContentDependencyEntry>();
    
     foreach(var datasource in args.Datasource)
     {
     // populate the result with the dependencies
     }
    
     args.AddResolvedDependencies(result); // submit the result
     }
    }