我正在寻找获取droplink字段的引用项值的最简单方法。
@Html.Sitecore().Field("Alignment")
我想获得选择的价值,最好的方法是什么?
答案 0 :(得分:1)
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"))
答案 1 :(得分:1)
如果您需要能够编辑在上下文项目的'对齐' droplink字段中选择的对齐项目的字段,或者只显示对齐项目的值#s访客的字段:
@{
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>
此示例假定对齐模板包含&#39;对齐文字&#39; 字段。
答案 2 :(得分:0)
如果这是部分视图,即.cshtml文件,您也可以使用以下内容:
Sitecore.Data.Fields.TextField alignment= Model.Item.Fields["Alignment"];
这将为您提供drop链接中set设置的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。