【问题标题】:Umbraco 7.2.8 related links razor displayUmbraco 7.2.8相关链接剃须刀显示
【发布时间】:2015-09-20 14:10:36
【问题描述】:

我有一个文档类型,其中包含 Umbraco 7.2.8 中的相关链接

我想在视图中显示它,但 HasValue 为 false,GetPropertyValue("relatedLinks") 也为空。

所以我查看了数据库中的节点,属性“relatedLinks”写为 CData,而不是 JSON:

  <relatedLinks><![CDATA[[
  {
    "caption": "Some caption",
    "link": 1163,
    "newWindow": false,
    "internal": 1163,
    "edit": false,
    "isInternal": true,
    "internalName": "Caption",
    "type": "internal",
    "title": "Link Title"
  }
]]]></relatedLinks>

据我所知,在这个 umbraco 版本中,它应该写成 JSON(例如,这里的示例 https://our.umbraco.org/forum/developers/razor/54450-Related-Links-Razor-Macro-Umbraco-7),然后使用 Razor 轻松显示在视图上。

不确定我应该如何在 Razor 中使用 CDATA sn-p?

或者如何强制cms写成JSON?

【问题讨论】:

    标签: json razor cdata umbraco7 umbraco-mvc


    【解决方案1】:

    您是否尝试过将其用作 JArray?

    @using Newtonsoft.Json.Linq
    @{      
        if (Model.Content.HasValue("relatedLinks") && Model.Content.GetPropertyValue<string>("relatedLinks").Length > 2)
        {
            <ul>
                @foreach (var item in Model.Content.GetPropertyValue<JArray>("relatedLinks"))
                {
                    var linkUrl = (item.Value<bool>("isInternal")) ? Umbraco.NiceUrl(item.Value<int>("internal")) : item.Value<string>("link");
                    var linkTarget = item.Value<bool>("newWindow") ? "_blank" : null;
                    <li><a href="@linkUrl" target="@linkTarget">@(item.Value<string>("caption"))</a></li>
                }
            </ul>
        }
    }  
    

    https://our.umbraco.org/documentation/getting-started/backoffice/property-editors/built-in-property-editors/related-links

    【讨论】:

      猜你喜欢
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-03-01
      • 2015-04-02
      相关资源
      最近更新 更多