【问题标题】:Umbraco 7: Get the Umbraco.Field('"name") from Children pages in foreachUmbraco 7:从 foreach 中的儿童页面获取 Umbraco.Field('"name")
【发布时间】:2014-08-27 11:36:38
【问题描述】:

我已经使用 NuGet 和 VS2013 安装了 Umbraco 7.1.5。我有一个 MainMenu 部分视图,它获取文档树并相应地填充菜单:

var homePage = CurrentPage.AncestorsOrSelf(1).First();
var menuItems = homePage.Children.Where("UmbracoNaviHide == false"); 

<ul class="nav">
<li class="@(CurrentPage.Url == "/" ? "current_page_item" : null)"><a class="Lvl1 home" href="/">Home</a></li>

@foreach (var item in menuItems)
{    
  <li class="@(CurrentPage.Id == item.Id ? "current_page_item" : null) Col1">
    <a class="lvl1 parent" href="@item.Url">@item.Name</a>

    @{var subMenuItems = item.Children.Where("UmbracoNaviHide == false");}

    @if (subMenuItems.Count() > 0)
    {
        <ul>
            @foreach (var sub in subMenuItems)
            {
              ????  @Umbraco.Field("menuItemImage", recursive: true) ?????

                <li><a class="parent" href="@sub.Url">@sub.Name</a></li>
            }
        </ul>
    }
  </li>
}
</ul>

Q:如何获取第二个 foreach 中每个子菜单项的 @Umbraco.Field("menuItemImage", recursive: true)(上传类型)?

【问题讨论】:

    标签: asp.net asp.net-mvc umbraco umbraco7


    【解决方案1】:

    使用 IPublishedContent 接口中的 GetPropertyValue。

    @foreach (var sub in subMenuItems)
    {
        // will only work if image is mandatory, otherwise the inner value can be null.  
        // In that case you need to add an extra check
        var img = Umbraco.TypedMedia(sub.GetPropertyValue<string>("menuItemImage", recurse:true))
        <img src="@img.Url" alt="sub.Name" />
        <li><a class="parent" href="@sub.Url">@sub.Name</a></li>
     }
    

    更新

    因为您使用的是动态,所以您也可以做到@sub.menuItemImage。因为我不太喜欢动态,所以我经常使用Model.Content 而不是CurrentPage。像这样,由于Model.Content 被强类型化,您将在Visual Studio 中收到智能感知。

    【讨论】:

    • 谢谢dampee!如果我将sub 作为第一个参数传递,它也可以工作:@Umbraco.Field(sub, "menuItemImage", recursive: true) 返回 url 字符串
    猜你喜欢
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多