2

コンテンツ領域にアイテムのリストを表示したい (ページ リスト ブロックを使用してページのリストを表示しています)。コンテンツ領域にページ タイプをドラッグ アンド ドロップすると、「Castle.Proxy. 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>

編集モードでページをコンテンツ領域にドラッグ アンド ドロップすると、「Castle.Proxies.ListingBlockProxy」のエラーが発生します。

4

1 に答える 1

1

確かにエラーですか?MainListing は、実行時に ListingBlockProxy になる ListingBlock のプロパティ タイプです。マークアップで @Model.MainListing のみを使用する場合、出力はおそらく "Castle.Proxies.ListingBlockProxy" になります。代わりに @Html.PropertyFor(x=>x.MainListing) で表示しようとすると、残りのコードに問題がなければ機能する可能性があります。

于 2016-06-23T09:53:47.007 に答える