これは、SDL Tridion 2011 SP1 を使用した Razor テンプレートに関するものです。
SiteEdit UI 2012 を有効にするために、CT 内にタグを導入しています。
tcdl:ComponentField
コンポーネントのネストされた埋め込みフィールド内に存在するフィールドのタグを作成できるかどうかを尋ねたいと思います。
ここでは、多値埋め込みフィールドとして「footer_links」を持つコンポーネントがあり、各「footer_links」アイテムには多値埋め込みフィールド「sub_nav」があり、sub_nav.image を読み込んでスイートを編集可能にします。
しかし、次のことを行うと、コンテンツのインライン編集を有効にすると、TBB が次のエラーをスローします
エラー : オブジェクト参照がオブジェクトのインスタンスに設定されていません。Tridion.SiteEdit.Templating.EnableInlineEditingUI.FindItemFieldXPath (文字列 [] パーツ、Int32 currentIndex、ItemFields フィールド) で
誰でも何か考えがありますか?これを実装できたら?はいの場合、次のコードの何が問題になっていますか?
また、同じように ComponentLink 内のフィールドを読み取ることはできますか? 助けていただければ幸いです。
@for (int i=0; i<Fields.footer_links.Count; i++) {
/* "outer_image" is compLink and it workds fine */
@if(Fields.footer_links[i].outer_image != null) {
<tcdl:ComponentField name="Fields.footer_links[@i].outer_image">
<img src="@Fields.footer_links[i].outer_image.ID"/>
</tcdl:ComponentField>
}
/* "sub_nav" is Mutlivalued Embedded field and "image" is field inside it */
@for (int j=0; j<Fields.footer_links[i].sub_nav.Count; j++) {
<li>
@if(Fields.footer_links[i].sub_nav[j].image != null) {
<tcdl:ComponentField name="Fields.footer_links[@i].sub_nav[@j].image">
<img src="@Fields.footer_links[i].sub_nav[j].image.ID" />
</tcdl:ComponentField>
}
}
}