0

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

我可以得到这样的财产

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

但是输出是空的。当我调试时,我可以看到 Value 包含一些列表内容(如标签等),有些内容没有打印出来。

我的问题是如何将这个属性的值转换为超链接对象的集合。

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

谢谢!

4

4 回答 4

1

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

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

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

于 2017-07-28T04:39:33.587 回答
0

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

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

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

于 2013-09-12T05:39:17.043 回答
0

试试这个 umbraco.NodeFactory.Node.GetCurrent().GetProperty("RelatedLinks")

于 2013-09-12T06:13:03.403 回答
0

像这样解决它:

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

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

于 2013-09-12T12:29:38.427 回答