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 を指すことを指摘したいと思います。しかし、関連するすべてのアイテムを展開しました。私は何かを監督しましたか?
ローカル作業とステージングが行われないのはなぜですか?