Umbraco:无法在代码隐藏中获取 RelatedLinks 属性值

本文关键字:获取 RelatedLinks 属性 隐藏 代码 Umbraco | 更新日期: 2023-09-27 18:31:02

我的一个页面中有一个 RelatedLinks 属性,我需要从宏用户控件的代码隐藏中获取链接/PageId。

我可以得到这样的财产

var current = Node.GetCurrent();
Response.Write("Output: " + current.GetProperty("RelatedLinks").Value); 

但输出为空。当我调试时,我可以看到值包括一些列表内容(如标签等),有些不知何故什么都没有打印。

我的问题是如何将此属性中的值获取到超链接对象的集合中。

我是Umbraco的新手,我可能在这里错过了一些重要的东西。获取其他属性类型(如内容选取器)的内容工作正常。

谢谢!

Umbraco:无法在代码隐藏中获取 RelatedLinks 属性值

您可以在 Umbraco 7.+ 中使用这个简单的解决方案

Model.Content.GetPropertyValue<Umbraco.Web.Models.RelatedLinks>("relatedArticles");

这只需将数据转换为易于使用的静态类型。

您的相关链接设置为什么数据类型,假设它是一个内容选择器,您可以在其中获取相关页面的 ID,您可以首先从当前页面的 id 创建一个节点,然后尝试从该节点获取值,例如

var current = Node.GetCurrent();
var currentPage = Model.NodeById(current.Id);
var relatedLinks = currentPage.RelatedLinks; 
or
var relatedLinks = GetProperty("RelatedLinks").Value;

调试时,您应该能够看到 Current Page 的所有属性并检查您的别名以确保其正确(通常别名默认情况下不以大写字母开头)。

试试这个本布拉科。NodeFactory.Node.GetCurrent().GetProperty("相关链接")

这样解决:

        Document doc = new Document(Node.GetCurrent().Id);
        umbraco.cms.businesslogic.property.Property relatedLinks = doc.getProperty("RelatedLinks");
        XmlNode relatedLinksAsXml = relatedLinks.ToXml(new XmlDocument());

但是它说文档类已经过时,并希望我改用Umbraco.Core.Models.Content。但这是MVC,对吧?我正在尝试使用网络表单。尝试使用此线程中所述的 Node 类,但我返回的属性对象类型错误,无法转换为 XML。