Hyperlink Sitecore MVC和FieldRenderer。渲染链接
我正在尝试像这样渲染常规链接字段-Hyperlink Sitecore MVC和FieldRenderer。渲染链接,hyperlink,sitecore,sitecore-mvc,Hyperlink,Sitecore,Sitecore Mvc,我正在尝试像这样渲染常规链接字段-FieldRenderer.render(项目,“链接”) 这可以按预期工作,但如何在呈现的标记中设置自定义文本。我希望我的输出看起来像这样 <a href="[link from sitecore]">[custom text from another field]</a> 基本上,链接的文本应该来自项目的另一个字段 谢谢您可能想尝试以下方法: @Html.Sitecore().BeginField("Link Field") /
FieldRenderer.render(项目,“链接”)
这可以按预期工作,但如何在呈现的标记中设置自定义文本。我希望我的输出看起来像这样
<a href="[link from sitecore]">[custom text from another field]</a>
基本上,链接的文本应该来自项目的另一个字段
谢谢您可能想尝试以下方法:
@Html.Sitecore().BeginField("Link Field")
//custom code
@Html.Sitecore().EndField()
Varun的回答绝对正确,但是当内容编辑器在
常规链接的描述
字段中输入值时,您会遇到问题。链接渲染器将输出描述以及BeginField
和EndField
方法之间的任何内容
解决方案是允许一个额外的参数(HideDescription
)来隐藏描述。两种可能的解决办法是:
使用您自己的类覆盖标准的Sitecore.Xml.Xsl.LinkRenderer
类,这将阻止将描述放入
在Sitecore.Pipelines.RenderField.GetLinkFieldValue
之后添加自定义管道步骤,该步骤将执行一些渲染后处理以删除描述
选择2的侵入性较小,但要确保结果100%有点困难。一旦你有了这个,你就可以像下面这样渲染字段
@Html.Sitecore().BeginField("Link Field", new { HideDescription = true })
@Html.Sitecore().Field("Text Field")
@Html.Sitecore().EndField()
Jason有一个好主意,但是这个功能是现成的
@Html.Sitecore().BeginField("Link Field", new { haschildren= true })
@Html.Sitecore().Field("Text Field")
@Html.Sitecore().EndField()
根本不需要修改任何内容。已经得到了回答,但这对我很有效
@Html.Sitecore().BeginField("Target URL", item.InnerItem, new { text = @Html.Sitecore().Field("Title", item.InnerItem) })
@Html.Sitecore().EndField()
您还可以使用begin和end字段并使用haschildren属性,这将隐藏文本并仅显示begin和end语句之间的任何子内容:
@Html.Sitecore().BeginField("ItemName/ID", Model.DataSourceItem, new {
haschildren = true,
@class = "my-custom-class"
})
<span class="extra-content">
@Html.Sitecore().Field("Text Field")
</span>
@Html.Sitecore().EndField()
@Html.Sitecore().beginield(“ItemName/ID”,Model.DataSourceItem,新建{
haschildren=正确,
@class=“我的自定义类”
})
@Html.Sitecore()字段(“文本字段”)
@Html.Sitecore().EndField()
是否有MVC api的参考资料?