问题描述
我正在处理块 (blockA) 的视图 (Razor)。该块包含一个名为 solutions
的 ContentArea。我想获得一个列表,作为 solutions
中项目的 ID 字符串。
我尝试查看 @Model.solutions.FilteredItems.
或 @(((IContent)Model).ContentLink.
以查看是否可以访问所有项目的 ID 列表。
如何以字符串列表的形式获取 solutions
中所有项目的 ID?
解决方法
你会在ContentAreaItem的ContentLink中找到ID,不需要强制转换
要输出为逗号分隔的列表,
// always null check contentareas in templates
var idList = Model.ContentArea != null && Model.ContentArea.FilteredItems.Any() ? string.Join(",",Model.ContentArea.FilteredItems.Select(x => x.ContentLink.ID)) : "";
<div>@idList</div>
把它写成一个列表
@if (Model.ContentArea != null && Model.ContentArea.FilteredItems.Any())
{
<ul>
@{
foreach (var item in Model.ContentArea.FilteredItems)
{
<li>@item.ContentLink.ID</li>
}
}
</ul>
}