---
title: "ASP.NETコアレンダリングのレイアウトおよびサイトの要件"
slug: "layout-and-site-requirements-for-asp-net-core-rendering"
abstract: "サイト定義、エクスペリエンスエディターのサポート、JSONレンダリング、ASPコアレンダリングのための動的プレースホルダーキー.NET概要。"
---
# ASP.NETコアレンダリングのレイアウトおよびサイトの要件

> !重要以前にアプリを統合していた場合、それは旧版のASP.NETコアレンダリングSDK(バージョン22以前)を使用しています。このSDKは更新を受け取っていないため、[最新のバージョンへのアップグレード](https://doc.sitecore.com/xmc/en/developers/asp-net/latest/asp-net-core-sdk/upgrade-from-v22.html) をお勧めします。

[Sitecore Layout Service](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/layout-service.html "Layout Service")やASP.NET Coreレンダリング用のサイトやレイアウト構造を構築する際には、[Sitecore MVC](https://doc.sitecore.com/xp/en/developers/102/sitecore-experience-manager/mvc-and-renderings.html)を使った開発との間に重要な違いがあります。これらの点を念頭に置いてください。サイトを構築したり、既存のコンテンツをASP.NET Coreで利用できるように再構成したりする際に。

> !注これらの違いは、JSSを扱ったことのある開発者にとっては馴染み深いものであり、特に[Sitecoreファーストのワークフロー](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/sitecore-first-development-workflow.html "Sitecore-first development workflow")を使う場合に顕著です。

## サイト定義の設定

レンダリングホストがサイトの正面玄関であっても、レイアウトサービスで使用するためには設定済み [のサイト定義](https://doc.sitecore.com/xp/en/developers/102/platform-administration-and-architecture/configure-multiple-managed-websites.html) が必要です。ASP.NETコアのレンダリングサイトでサイト定義を設定する際:

-   rootPathは他のSitecoreサイトと同様に設定してください。
-   hostNameまたはtargetHostNameURLを[Content Delivery(CD)サーバー](https://doc.sitecore.com/xp/en/developers/102/platform-administration-and-architecture/content-delivery--cd-.html)の外部向けホスト名として設定してください。このホストは、レイアウトサービスがメディアライブラリURLを出力する際に使われます(CDNを使わない場合は)。
-   サイト name はレイアウトサービスクライアントの [デフォルトリクエスト値](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/asp-net-core-rendering-engine.html "ASP.NET Core Rendering Engine")で設定されているはずです。

## エクスペリエンスエディターサポートの設定

エクスペリエンスエディターをサポートするには、レイアウト、サイトルート、アプリ設定を適切に設定する必要があります。

## JSONレンダリングの使用

ASP.NET Coreサイトで使う新しいレンダリングを作成する際は、コントローラーレンダリングやビューレンダリングなどのSitecore MVCレンダリングタイプは使わないでください。必ずJsonレンダリング(/sitecore/templates/Foundation/JavaScript Services/Json Rendering)を使いましょう。

このレンダリングタイプは、レイアウトサービスによってASP.NETコアコンポーネントのレンダリングに必要なデータでシリアライズされます。Jsonレンダリングで重要なフィールドには以下が含まれます:

フィールド

概要

コンポーネント名

これにより、レイアウトサービスの出力に componentName プロパティが入力されます。 [レンダリングエンジン](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/asp-net-core-rendering-engine.html)でコンポーネントを設定する際、この名前にマッピングします。

データソースの所在地

Sitecore MVCの発達時と同じ挙動をします。

データソーステンプレート

Sitecore MVCの発達時と同じ挙動をします。

Experience Editorで常にフィールドエディターのボタンを表示する

エクスペリエンスエディターのコンポーネント上でフィールドエディタを有効にし、非インラインフィールドタイプの編集に役立ちます。

フィールドエディタ表示フィールド

上記のフィールドエディタのフィールドを設定します(デフォルトはすべてのフィールドです)。

キャッシュ可能(および関連ファイル)

コンポーネントの出力キャッシュを設定します。レイアウト[サービスについては「出力キャッシュの実装](urn:resource:component:766669)」を参照してください。

レンダリングコンテンツリゾルバ

レンダリング用のデータを出力する際に、カスタムのシリアライゼーション構成やC#クラスを指定することができます。詳細は[「内容リゾルバによるレンダリングの作成](https://doc.sitecore.com/xp/ja/developers/hd/19/sitecore-headless-development/walkthrough--creating-a-model-bound-view-that-renders-a-contents-resolver.html)」を参照してください。

レイアウトサービスプレースホルダー

\>\[!重要\]  
\> アイテムの完全な構造化レイアウトを出力するために、レイアウトサービスはレンダリング上に存在するプレースホルダーを知る必要があります。  
\> これらの露出したプレースホルダーを発見可能にするために、レイアウトサービスはこのフィールドをSitecoreレンダリング定義に追加します。  
\> このレンダリングで使いたい子プレースホルダー(例: <sc-placeholder name="child-placeholder"></sc-placeholder>)を選択できます。

## 動的プレースホルダーキーの使用

簡単さのため、レイアウトサービスはルートのプレースホルダー(通常はヘッダー、メイン、フッターなど)以外のすべてのプレース [ホルダーが動的プレースホルダー](https://doc.sitecore.com/xp/en/developers/102/sitecore-experience-manager/dynamic-placeholders.html)であると仮定しています。

つまり、ページのレイアウト内のコンポーネントをレイアウトサービスで出力するには、フォーマット {placeholder key}-{rendering unique id}-0の動的プレースホルダーキーでアドレス指定する必要があります。例えば:

/main/accordion-{3A59ED89-58AB-4B51-8F9C-6100453DDFEC}-0

つまり、コンテンツエディターを使ってページにレンダリングを追加するのは通常非現実的です。

代わりに、エクスペリエンスエディターでページを開くと、必要なキーが計算されます。また、**Publish**リボンからExperience Editorの\_\_Standard Values項目を開くことも可能です。

> !注レイアウトサービスはインデックス付き動的プレースホルダーをサポートしていません。キーの最終値は常にゼロです。