Asp.net mvc 4 droplink的sitecore mvc值
我正在寻找获取droplink字段的引用项值的最简单方法Asp.net mvc 4 droplink的sitecore mvc值,asp.net-mvc-4,sitecore,razor-2,sitecore-mvc,Asp.net Mvc 4,Sitecore,Razor 2,Sitecore Mvc,我正在寻找获取droplink字段的引用项值的最简单方法 @Html.Sitecore().Field("Alignment") 我想获取选项的值,最佳方法是什么?Droplink字段存储引用的项目的ID。要检索此ID(假设该字段存在于当前项目/模型中): ((LinkField)Model.Item.Fields[“Alignment”])。Value 要输出引用项的名称,可以执行以下操作: @(Model.Item.Database.GetItem(((LinkField)Model.It
@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的文章展示了如何扩展SitecoreHelper类以添加自定义字段呈现器,从而最终创建一个整洁的可重用代码段,如:
@(Html.Sitecore().ReferenceField(“对齐”、“名称”))
如果这是一个局部视图,即.cshtml文件,您也可以使用如下内容:
Sitecore.Data.Fields.TextField alignment= Model.Item.Fields["Alignment"];
这将为您提供drop链接中设置项的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>
@{
Sitecore.Data.Fields.ReferenceField alignmentField=Sitecore.Context.Item.Fields[“对齐”];
Sitecore.Data.Items.Item alignmentItem=alignmentField.TargetItem;
}
@Html.Sitecore().Field(“对齐文本”,alignmentItem)
本例假设对齐模板包含“对齐文本”字段。这里的关键是类型为
ReferenceField
,而不是前面排名靠前的答案中的LinkField
。