嗨,我现在正在开发一个多语言模块,但是在将字段解析为InternalLinkField时遇到问题。发生的是我有一个中文项目,但是当我得到它的一个字段并将其转换为InternalLinkField时,转换后的项目变为英语。这是示例代码
var field =(InternalLinkField)InnerItem.Fields [“ Test”];
所以我正在处理的当前项目是InnerItem,它是中文版本,当解析后,字段对象变成英语。因此,作为一种变通办法,我现在使用了上下文获取项来获取该语言的字段。但这是多余的,所以我想知道是否有一种方法可以获取具有正确语言版本的字段对象。
解决方法:
Item item = Sitecore.Context.Database.GetItem(field.TargetID,InnerItem.Language);
先谢谢了。
答案 0 :(得分:0)
InternalLinkField 是Sitecore核心使用的系统类型。因此,除非计划扩展Sitecore,否则不建议将其用于自定义功能开发。如果要在数据模板中实现链接字段,则以下两种类型将适合您的需求:
GetFriendlyUrl()
方法生成正确的链接为 Sitecore.Data.Fields.LinkField yourLinkField = yourItem.Fields["Link"];
var yourUrl = yourLinkField.GetFriendlyUrl();