SitecoreHelperのFieldヘルパーメソッドがどのアイテムのフィールドをレンダリングするのかを選択する方法をまとめます。
SitecoreHelper.Field ヘルパーメソッドを使用すると、引数で指定したフィールドを cshtml の中に簡単に出力できます。cshtml上で実際にFieldヘルパーメソッドを呼び出す場合は次のようなコードを記載します。この例では Title という名前のフィールドを出力するように指定しています。
@Html.Sitecore().Field("Title")
Field ヘルパーメソッドは引数にItemオブジェクトを取るオーバーライドがあります。この場合は、引数で指定されたItemのフィールドを出力します。では、引数に Item オブジェクトが指定されない場合、どのアイテムのフィールドを出力するのかというと単純で次の順に決まります。
- データソースが設定されている場合 データソースに指定されたアイテムのフィールド
- 上記ではない場合は、コンテキストアイテム(ページに対応するアイテム)のフィールド
なので、データソースが指定されていれば、そのアイテムのフィールド。そうでない場合はコンテキストアイテムにフォールバックするという流れになります。
これは、コントローラーレンダリングでもビューレナリングでも同じ動作になります。
さんのコメント: さんのコメント: