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>
}
}
我是 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>
}
}