我的一个页面中有一个RelatedLinks属性,我需要从宏用户控件的代码中获取链接/ PageId。
我可以得到像这样的财产
var current = Node.GetCurrent();
Response.Write("Output: " + current.GetProperty("RelatedLinks").Value);
但是输出是空的。当我调试时,我可以看到Value包含一些列表内容(比如标签等)某些东西什么都没有打印出来。
我的问题是如何将此属性的值转换为类似超链接对象集合的值。
我是Umbraco的新手,我可能会错过这里必不可少的东西。获取其他属性类型的内容(如内容选择器)可以正常工作。
谢谢!
答案 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。