2017-09-12 33 views
0

進出口新的一把umbraco 7一把umbraco 7 - 從一個頁面獲取屬性另一

我有一個母版 - 我在裏面有2 Partialviews - HEADER & FOOTER

我有2子頁面,從母版inherites - 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

內10

的代碼導航到HOME PAGE時工作正常,但如果我去STANDARD PAGE那麼Reletad Links屬性是不可見的loger。

我能做些什麼來解決這個問題。

回答

0

相反(通過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> 
    } 
} 
+0

謝謝 這很有效 – Jonas