问题描述
我已经创建了一个基于 EpiServer LinkItemCollection 的模型:
namespace ProjectX.Site.Models.Blocks
{
[SiteContentType(
GUID = "b9978bf2-f3da-4164-8fa2-3694c2ce0377",AvailableInEditMode = false)]
[SiteImageUrl]
public class CustomTopNavigationItemtBlock : SiteBlockData
{
[CultureSpecific]
[MinItemCount(0)]
[MaxItemCount(2)]
[display(Order = 10)]
public virtual LinkItemCollection CustomTopNavigationLinks { get; set; }
public override int WordCount
{
get => throw new System.NotImplementedException();
set => throw new System.NotImplementedException();
}
}
}
我正在尝试为它创建一个共享视图:
@model CustomTopNavigationItemtBlock
@if (Model != null)
{
@foreach (var linkItem in Model)
{
<li>
<a class=""
href="@Url.PageUrl(linkItem.Href)"
target="@linkItem.Target"
title="@linkItem.Title"
tabindex="1"
data-toggle=""
role="button">
@linkItem.Text
</a>
</li>
}
}
不幸的是,我不明白我做错了什么。
解决方法
在这里,您正在尝试迭代 Model
:
foreach (var linkItem in Model)
然而,Model
属于 CustomTopNavigationItemtBlock
类型,不能使用 foreach
进行迭代,因为它没有实现 IEnumerable
。
您似乎正在尝试遍历 CustomTopNavigationLinks
属性,可以这样做:
foreach (var linkItem in Model.CustomTopNavigationLinks)