我正在尋找最簡單的方法來獲取droplink字段的引用項目值。droplink的sitecore mvc值
@Html.Sitecore().Field("Alignment")
我想獲得選擇的價值,什麼是最好的方法?
我正在尋找最簡單的方法來獲取droplink字段的引用項目值。droplink的sitecore mvc值
@Html.Sitecore().Field("Alignment")
我想獲得選擇的價值,什麼是最好的方法?
Droplink
字段存儲引用的項目的ID。要檢索該ID(提供勵磁存在於當前的項目/型號):
((LinkField)Model.Item.Fields["Alignment"]).Value
爲了輸出所引用的項目的名稱,你可以做這樣的事情:
@(Model.Item.Database.GetItem(((LinkField)Model.Item.Fields["Alignment"]).Value).Name)
但那真的很難看。首選的方法是創建一個擴展方法封裝上述某些因此您不必重新輸入:D
John West的文章Extending the SitecoreHelper Class顯示瞭如何擴展SitecoreHelper類以添加自定義字段渲染器,所以你可能最終會像創造一個整潔的可重複使用的片段:
@(Html.Sitecore().ReferenceField("Alignment","Name"))
如果這是一個局部視圖,即.cshtml文件,你也可以使用類似如下:
Sitecore.Data.Fields.TextField alignment= Model.Item.Fields["Alignment"];
這會給你在下拉連桿的設定項目的ID,然後從該ID可以從數據庫中檢索它像:
@if (!string.IsNullOrWhiteSpace(alignment.Value))
{
var setAlignment = Sitecore.Context.Database.GetItem(alignment.Value);
if (setAlignment != null && !string.IsNullOrWhiteSpace(setAlignment.Name))
{
setAlignment.Name
}
}
我個人更喜歡這種方式,我可以檢查droplink設置在嘗試使用該值之前。
如果你需要有編輯這是選擇在「對齊」上下文項的droplink場或只顯示校準項目的字段的值,供遊人對齊項目領域的能力:
@{
Sitecore.Data.Fields.ReferenceField alignmentField = Sitecore.Context.Item.Fields["Alignment"];
Sitecore.Data.Items.Item alignmentItem = alignmentField.TargetItem;
}
<div>
@Html.Sitecore().Field("Text of Alignment", alignmentItem)
</div>
這個例子假設對齊模板包含'文本對齊'字段。
這裏的關鍵是類型是'ReferenceField'而不是'LinkField',就像在前一個評分最高的答案中一樣。 –