我想在内容区域中显示项目列表(我使用页面列表块来显示页面列表。)当我在内容区域中拖放页面类型时,我收到一条错误说明&#34 ; Castle.Proxies.ListingBlockProxy"
以下是我的代码......
HomeBlockPage.cs
public class HomeBlocksPage : SitePageData
{
[Display(Name = "Main Listing", Description = "A listing of news pages", GroupName = SystemTabNames.Content, Order = 315)]
public virtual ListingBlock MainListing { get; set; }
}
查看模型类 - ListingBlockModel.cs
public class ListingBlockModel
{
public ContentReference PageImage { get; set; }
public IEnumerable<SitePageData> Items { get; set; }
}
ListingBlock的Index.cshtml
@if (Model.Items != null) {
foreach (var item in Model.Items)
{
<div class="list">
<p><img src="@Url.ContentUrl(item.PageImage)"/></p>
<h3>@Html.PageLink(item)</h3>
@if (item.Property["MainBody"] != null)
{
@item.Property["MainBody"].Value
}
<hr />
</div>
} }
为了在内容区域中显示或呈现项目列表(页面列表),我已经为页面创建了部分模板。
PagePartialController.cs
[TemplateDescriptor(Inherited = true)]
public class PagePartialController : PartialContentController<HomeBlocksPage>
{
public override ActionResult Index(HomeBlocksPage currentContent)
{
return PartialView("/Views/Shared/PagePartials/PagePartial.cshtml",currentContent);
}
}
PagePartial.cshtml
@model WesleyanSite.Models.Pages.HomeBlocksPage
<div class="span12">
<a href="@Url.PageUrl(Model.LinkURL)">
@Model.MainListing
</a>
</div>
当我在编辑模式下将页面拖放到内容区域时,我收到错误&#34; Castle.Proxies.ListingBlockProxy&#34;
答案 0 :(得分:1)
你确定这是一个错误吗? MainListing是ListingBlock的属性类型,它在运行时变为ListingBlockProxy。 如果你只在标记中使用@ Model.MainListing,那么输出可能是“Castle.Proxies.ListingBlockProxy”。如果您尝试使用@ Html.PropertyFor(x =&gt; x.MainListing)显示它,则可能会在其余代码正常的情况下显示。