【问题标题】:Umbraco: Unable to get RelatedLinks property value in code-behindUmbraco:无法在代码隐藏中获取 RelatedLinks 属性值
【发布时间】:2017-07-28 12:39:33
【问题描述】:

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

我可以得到这样的财产

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

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

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

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

谢谢!

【问题讨论】:

    标签: c# asp.net umbraco


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

      • 我在 Umbraco 中使用 RelatedLinks 数据类型,您可以在其中选择多个链接。它们似乎以 XML 格式存储,因此这可能是我无法从 Content Picker 数据类型等其他属性中获取值的原因。我尝试了您发布的 Model.NodeById() 示例,但它不起作用,可能是因为我使用的是 webforms 用户控件而不是 MVC。所以我想我需要以某种方式检索 XML 格式的属性数据。
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        这样解决了:

                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。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-18
          • 2019-09-10
          • 2013-03-04
          • 2018-09-08
          相关资源
          最近更新 更多