Sitecore MVC ViewRendereing和GlassMapper

Arb*_*æde 1 sitecore razor sitecore-mvc glass-mapper sitecore8

我想在Sitecore 8 MVC上创建基于Razor的面包屑.我创建了一个页面模板,其中包含一些可用于它的属性.创建了视图渲染并将其添加到布局项(页面).我用while循环为这个渲染创建了一个cshtml文件

 <ul>
    @{
        var parentItem = Html.Sitecore().CurrentItem;
        while (parentItem != null)
        {
            if (parentItem["Include in breadcrumb"] != "0")
            {
                <li>@parentItem["Short Title"]</li>
            }
            parentItem = parentItem.Parent;
        }
    }        
</ul>  
Run Code Online (Sandbox Code Playgroud)

但它对我来说看起来不是很理想,我想使用Glass Mapper

我创建了一个具有祖先访问权限的类

public class Breadcrumb
{
    [SitecoreQuery("ancestor-or-self::*[@#Include in breadcrumb#='1']", IsRelative = true)]
    public virtual IEnumerable<Breadcrumb> Ancestors { get; set; }

    [SitecoreField(FieldName = "Include in breadcrumb")]
    public virtual bool IncludeIn { get; set; }

    [SitecoreField(FieldName = "Short Title")]
    public virtual string Title { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道怎么对sitecore"说"使用它来进行我的View渲染.我没有任何特定的页面控制器.

是否可以使用一些玻璃映射器与View渲染?

Mar*_*les 5

这通常通过视图顶部的inherits指令完成:

@using Glass.Mapper.Sc.Web.Mvc
@inherits GlassView<Breadcrumb>
Run Code Online (Sandbox Code Playgroud)

然后在页面上你可以正常使用你的模型; 如果,对于一个案例,你想让你的标题页面编辑器友好 - 那么你可以使用以下构造来访问你的模型属性:

@Editable(x=>x.Title)
Run Code Online (Sandbox Code Playgroud)