我有一个Umbraco解决方案,它让我获得所选节点的ID,逗号分隔。
但是我想在一个oneliner中得到的是所选节点的值。 所以目前它只是返回节点ID,如“1001,1000,1003”或只是“1003”,如果只选择了一个。
我想要它返回的是所选节点的值。让我们说它想要的属性上的菜单标题。因此,我想要“Frontpage,Contact,About Us”等,而不是上面的输出。
看起来怎么样?
<div class="container">
<div class="form-group" id="entries-per-page">
<label>Number of Entries:</label>
<select class="form-control" id="num-entries">
<option value="10">Show 10 entries</option>
<option value="25" selected>Show 25 entries</option>
<option value="50">Show 50 entries</option>
<option value="100">Show 100 entries</option>
</select>
</div>
<table class="table table-bordered table-hover">
<thead>
<tr class="header-names">
<th class="book-category">Title</th>
<th class="book-category">Author</th>
<th class="book-category">Meta Data</th>
<th class="book-category">Options</th>
</tr>
</thead>
<tbody id="books-table">
<script type="text/template" id="books-template">
<td><%- title %></td>
<td><%- author %></td>
<td><span class='glyphicon glyphicon-remove delete'></span></td>
</script>
</tbody>
</table>
</div>
答案 0 :(得分:4)
最简单的方法是安装Umbraco Core Property Value Converters nuget包。然后,这将为您提供一种扩展方法,您可以使用该方法一次性检索节点列表。然后,您可以使用LINQ选择每个页面的menuTitle
属性。
var menuTitles = mynode.GetPropertyValue<IEnumerable<IPublishedContent>>("pages")
.Select(x => x.GetPropertyValue<string>("menuTitle"));
如果您需要,可以使用string.Join()
组合菜单标题以获得以逗号分隔的列表。
以下是您可能需要添加的using语句列表:
using System.Collections.Generic;
using System.Linq;
using Our.Umbraco.PropertyConverters;
using Umbraco.Web;
using Umbraco.Core.Models;