這可能記錄在某處,但我找不到它。訪問Sitecore模板字段值
我使用Sitecore的助手和剃刀語法將值代入我的觀點:
@Html.Sitecore().Field("foo");
這工作得很好,但是,在I組已字段定義,其中一些具有相同的名稱,像:
組別1:富
組2:富
問:有什麼辦法按組訪問的領域呢? 像這樣的東西(我已經嘗試過):
@Html.Sitecore().Field("Group1.foo");
這可能記錄在某處,但我找不到它。訪問Sitecore模板字段值
我使用Sitecore的助手和剃刀語法將值代入我的觀點:
@Html.Sitecore().Field("foo");
這工作得很好,但是,在I組已字段定義,其中一些具有相同的名稱,像:
組別1:富
組2:富
問:有什麼辦法按組訪問的領域呢? 像這樣的東西(我已經嘗試過):
@Html.Sitecore().Field("Group1.foo");
只要我知道它是不可能使用部分名稱。
即使在不同部分之間,我也會避免使用相同的字段名稱。
還是一個選項是通過ID字段,然後創建類和常量不硬編碼標識
@Html.Sitecore().Field("{E77E229A-2A34-4F03-9A3E-A8636076CBDB}");
or
@Html.Sitecore().Field(MyTemplate.MyGroup.Foo); //where foo returns the id.
編輯:
MyTemplate.MyGroup.Foo
是類/結構創建自己只是爲了讓更容易和更可靠的參考文獻遍佈你項目。 (你可以使用一個工具自動生成它像一個T4模板)
public static struct MyTemplate
{
public static struct MyGroup1
{
public static readonly ID Foo = new ID("{1111111-1111-1231-1231-12312323132}");
}
public static struct MyGroup2
{
public static readonly ID Foo = new ID("{9999999-9999-xxxx-1231-12312323132}");
}
}
嘗試通過現場的GUID訪問。這樣,即使它們具有相同的名稱,API也可以加載相應的字段。
爲什麼你建議我避免在不同部分有相同的名稱?我不反對,但似乎如果有部分,那麼在邏輯上我應該能夠以這種方式使用它們。 – iGanja
該部分僅用於將數據組織到內容作者。它們不能用於查找字段。 查看Sitecore的數據定義參考PDF「2.1.2數據模板部分」: 「字段始終存儲在 內部,但部分僅在內容編輯器中反映出來,程序員不需要指示 部分從字段中提取內容。「 ref:http://sdn.sitecore.net/upload/sitecore6/datadefinitionreference-a4.pdf – RobertoBr
使用該字段的項目ID作爲您和Jay S指出的。但是,我仍然不清楚你的第二個選項是什麼意思。我發現Field方法沒有重載,它採用你描述的類型。 – iGanja