0

Sitecore 6.6 と Glass 3.0 の使用

Glass 経由のビュー レンダリングを使用する MVC レイアウトを作成しました。ハイライトを表示しようとしています。

次のフィールドが設定された GlassHighlights という名前のビュー レンダリングを作成しました。

  • 道:/Views/Renderings/KRN/GlassHighlight.cshtml
  • モデル:/sitecore/layout/Models/KRN/Highlights

Sitecore のモデルには次のフィールド セットがあります: モデル タイプ:Models.Sitecore.Content.Items.HighLights.Models

View Rendering は、GlassTest という名前の項目 (他のいくつかのレンダリングの中でも) の Layout Details に配置され、プレースホルダー 'body' に配置されます。データソースは、sitecore の正しいサブフォルダーに設定されています。

これは、C# で定義されているモデルです。

using System.Collections.Generic;
using Glass.Mapper.Sc.Configuration.Attributes;

namespace Models.Sitecore.Content.Items
{
    /// <summary>
    /// Container folder for the highlights
    /// </summary>
    [SitecoreType(AutoMap = true)]
    public class HighLights
    {
        /// <summary>
        /// Collection of Highlight items
        /// </summary>
        [SitecoreQuery(".//*[@@TemplateId='{EA8BF7CA-157F-4CF4-A2D8-36242304E8FA}']", IsRelative = true)]
        public virtual IEnumerable<Highlight> Items { get; set; }       
    }
}

これは、プロジェクトで定義されている razorview です。

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Models.Sitecore.Content.Items.HighLights>    

<div class="row topHWContainer">
    @{
        foreach (var highlight in Model.Items)
        {
        <div class="four columns topHW column-first">
            <a href="/eenheiddetails/@highlight.PublicatieID">
                <img src="/Style/Images/bgkArrowRightBlack.png" alt="bgkArrowRightBlack" width="19" height="14">
                <label>@highlight.Titel</label>
                <img src="@highlight.AchterGrondImage.Src" alt="Pimpernel" width="302" height="218" class="topHWimg">
                <div class="topHWinfo">
                    <label>@highlight.Plaats € @highlight.Huur</label>
                </div>
            </a>
        </div>                       
        }
    }
</div>

私が実験しているので、コードは場所によっては完全に最適ではないかもしれません。

ここに問題があります。ローカルで Web サイトを実行すると、完全に正常に動作します。すべてが想定どおりにレンダリングされ、すべてのデータは Sitecore から出力されるはずのもので満たされます。

ステージングにデプロイすると、モデルがいっぱいにならず、foreach を開始しようとすると null 参照例外が発生します。Model 自体は null ではありませんが、Model.Items は null です。なぜこれが起こるのですか?私のローカルは Sitecore マスターを指し、ステージングは​​ Web を指すことを指摘したいと思います。しかし、関連するすべてのアイテムを展開しました。私は何かを監督しましたか?

ローカル作業とステージングが行われないのはなぜですか?

4

2 に答える 2

1

アセンブリが Glass.Mapper によって読み込まれているかどうかを確認できますか? モデルが Web サイトとは異なるアセンブリにある場合は、モデルがロードされていることを確認する必要があります。チュートリアルhttp://glass.lu/docs/tutorial/sitecore/tutorial20/tutorial20.htmlを参照してください。

于 2013-09-24T11:07:56.510 に答える