Umbraco 7-将属性从一个页面获取到另一页



im to umbraco 7

我有一个主页 - 内部我有2 partialViews - HEADER&FOOTER

我有2个子页面,这些子页面从主页继承 - HOME PAGE & STANDARD PAGE

HOME PAGE - Document Type内有 Reletad Links 属性

Releted Links 属性的代码在partialView中,称为 Links

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@using Newtonsoft.Json.Linq
@{
    if (Model.Content.HasValue("externalLinks") && Model.Content.GetPropertyValue<string>("externalLinks").Length > 2)
    {
        <ul>
            @foreach (var item in Model.Content.GetPropertyValue<JArray>("externalLinks"))
            {
                var linkTarget = item.Value<bool>("newWindow") ? "_blank" : null;
                if (Model.Content.GetPropertyValue<JArray>("externalLinks").First() == item)
                {
                    <li>
                        <a href="@(item.Value<string>("link"))" target="@linkTarget"> <i class="fa fa-phone" aria-hidden="true"></i> @(item.Value<string>("caption"))</a>
                    </li>
                }
                else
                {
                    <li>
                        <a href="@(item.Value<string>("link"))" target="@linkTarget"> <i class="fa fa-flag" aria-hidden="true"></i> @(item.Value<string>("caption"))</a>
                    </li>
                }
            }
        </ul>
    }
}

LINKS partialView在 HEADER partialView

内加载。

导航到 HOME PAGE 时,代码工作正常,但是如果我转到 STANDARD PAGE ,则 Reletad Links 性是没有loger的。

我该怎么做才能解决此问题。

,而不是引用当前页面(通过model.content),您需要参考主页

我已经在部分示威中添加了一些代码以说明它,但没有对其进行测试

@inherits Umbraco.Web.Mvc.UmbracoTemplatePage
@using Newtonsoft.Json.Linq
@{
    // First get the homepage by traversing the Umbraco tree and searching for the homepage node
    var homepage = Umbraco.TypedContentAtRoot().First().DescendantsOrSelf().FirstOrDefault(x => x.DocumentTypeAlias == "home");
    if (homepage != null && homepage.HasValue("externalLinks") && homepage.GetPropertyValue<string>("externalLinks").Length > 2)
    {
        <ul>
            @{
                var externalLinks = homepage.GetPropertyValue<JArray>("externalLinks");
                foreach (var item in externalLinks)
                {
                    var linkTarget = item.Value<bool>("newWindow") ? "_blank" : null;
                    if (externalLinks.First() == item)
                    {
                        <li>
                            <a href="@(item.Value<string>("link"))" target="@linkTarget"> <i class="fa fa-phone" aria-hidden="true"></i> @(item.Value<string>("caption"))</a>
                        </li>
                    }
                    else
                    {
                        <li>
                            <a href="@(item.Value<string>("link"))" target="@linkTarget"> <i class="fa fa-flag" aria-hidden="true"></i> @(item.Value<string>("caption"))</a>
                        </li>
                    }
                }
            }
        </ul>
    }
}

相关内容

  • 没有找到相关文章

最新更新