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

时间:2013-09-11 07:56:01

标签: c# asp.net umbraco

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

我可以得到像这样的财产

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

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

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

我是Umbraco的新手,我可能会错过这里必不可少的东西。获取其他属性类型的内容(如内容选择器)可以正常工作。

谢谢!

4 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:0)

您的相关链接设置为哪种数据类型,假设您的内容选择器获取相关页面的ID,您可以先从当前页面的ID创建节点,然后尝试从该节点获取值,例如< / p>

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

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

答案 2 :(得分:0)

试试这个umbraco.NodeFactory.Node.GetCurrent()。GetProperty(“RelatedLinks”)

答案 3 :(得分: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吧?我正在尝试使用webforms。尝试使用此线程中描述的Node类,但返回的Property对象类型错误,无法转换为XML。