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

Umbraco 7 - Get property from one page to another

我是 umbraco 7 的新手

我有一个主页 - 里面有 2 个 Partialviews - HEADER & FOOTER

我有 2 个子页面继承自 Masterpage - HOME PAGE & STANDARD PAGE

里面HOME PAGE - Document Type我有一个Reletad Links属性

Releted Links 属性 的代码位于名为 Links[ 的分部视图中=25=]

@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局部视图加载到HEADER局部视图

当导航到 HOME PAGE 时,代码工作正常,但是如果我转到 STANDARD PAGE,那么Reletad Links 属性 没有记录器可见。

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

而不是引用当前页面(通过 Model.Content),您需要引用主页

我已经在 PartialView 中添加了一些代码来说明它,但还没有测试它

@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>
    }
}