---
title: "MVCとレンダリング"
slug: "mvc-and-renderings"
abstract: "MVCにおけるビューレンダリングについて論じています。"
---
# MVCとレンダリング

Sitecore MVCはASP.NET WebFormsとは異なるコントロールセットを使用しているため、すべてのSitecoreレンダリングをサポートしているわけではありません。

以下2つの対応レンダリング方式が最も一般的に使われています:

-   **表示表示**
    
    このレンダリングタイプはRazorビューです。Sitecoreビューのデフォルトコントローラーとモデルを提供します。 mvc.getModelパイプラインを変更することでモデルをカスタマイズできます。
    
    ビジネスやプレゼンテーションのロジックを必要としないアイテムコンテンツをレンダリングしたい場合に使います。
    
-   **コントローラーレンダリング**
    
    このレンダリングタイプについては、コントローラー、モデル、ビューを指定します。レンダリング定義項目で、Sitecoreがコンポーネントをレンダリングする際のアクションを指定します。
    
    外部データに依存するコンテンツや、ビジネスやプレゼンテーションのロジックが大きく必要なコンテンツのレンダリングに使うことができます。
    

このレンダリングは時折使われます:

-   **アイテムレンダリング**
    
    このレンダリングタイプは、コンテンツ(アイテム)が自分自身でレンダリングされることを求めます。コンテンツはレンダリングの仕方に関する情報を持っています。
    

以下のレンダリングはレガシー上の理由でサポートされています:

-   **メソッドレンダリング**
    
    このレンダリング型は静的メソッドへの呼び出しの返り値を出力します。
    
-   **XSLTレンダリング**
    
    これを使ってSitecore MVCページSitecore XSLTをレンダリングします。このレンダリングタイプはView Renderingタイプに似ていますが、テンプレートエンジンとしてXSLTを使Razorしています。
    
    既存のSitecore XSLTコンポーネントのライブラリを持っていて書き直したくない場合は、これを使いましょう。
    
-   **URLレンダリング**
    
    このレンダリングタイプは、HTTP GETリクエストの応答を現在のページにレンダリングします。
    
    他のシステムからHTMLをスクリーンスクレイピングする必要がある場合に使えます。時にはiframeの使用を避けるために使えます。
    

> !注Sitecore MVCのレンダラークラスは、WebControlから継承するのではなく、Rendererから継承します。

## MVCソリューションへのレイアウトとレンダリングの追加

MVCのレイアウトやレンダリングは、**Sitecore Rocks**から、または **コンテンツエディター**から2つの方法でMVCソリューションに追加できます。

**Sitecore Rocks**からMVCレイアウトを追加するには:

1.  **Visual StudioのSolution Explorer****内のViewsフォルダを右クリックし、「追加、新しいアイテム...」を選択してください。**
    
2.  Siteccore/MVCグループでSitecore View Layoutを選択してください:
    
    ![Select a layout](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/FD0F79ED01FA4292A8C881254C78CD9A.png)
    
3.  Sitecore Rocksは対応するSitecore定義項目をどこで作成するかを尋ねます。その項目をマスターデータベースのLayoutsフォルダに入れてください:
    
    ![Select where to create item](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/552EC78C480644978B2BBF5DF142EF37.png)
    

レンダリングの作成も同じ方法で行います:

-   Sitecore View Renderingを選択してView Renderingを作成し、定義項目をRenderingsに入力してください。
-   Sitecore Controller Renderingを選択してController Renderingを作成し、定義項目をRenderingsに入力します。

**Sitecore Content Editor**からMVCレイアウトを追加するには:

1.  コンテンツツリーのレイアウトフォルダをクリックします。
    
    ![Select the Layout folder](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/92A3A9E1B6484AC1992810C8184D8EEC.png)
    
2.  定義項目を作成するには「MVCレイアウト」をクリックしてください:
    
    ![Create defition item](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/30E182078CFF4DBDB7D9679FC9030E0E.png)
    
3.  名前を入力して「次へ」をクリックします。アイテムをSitecoreのLayoutsフォルダ、またはLayoutsのサブフォルダに置いてください:
    
    ![Select where to save item](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/Location.jpg)
    
4.  ファイルシステム内で必要なレイアウト(例えば .aspx ファイル)を作成します。
    
5.  作成したファイルのパスを新しいレイアウトのData.Pathフィールドに挿入します。
    

コンテンツツリー内のRenderingsフォルダをクリックして、記載されたレンダリングのいずれかを作成します:

![Create rendering](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/103/sitecore-experience-manager/images/B832799ED79348869F294C3BC524C10F.png)