Sitecore MVC ViewRendereing 和 GlassMapper
Sitecore MVC ViewRendereing and GlassMapper
我想在 Sitecore 8 MVC 上创建一个基于 Razor 的面包屑导航。
我创建了一个页面模板,其中包含一些 属性 将用于它。
视图渲染已创建并添加到布局项(页面)。
我已经使用 while loop
为这个渲染创建了一个 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>
但它看起来对我来说不是很理想,我想使用 Glass Mapper
我创建了一个具有祖先访问权限的 class
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; }
}
但我不知道如何 'say' 将 sitecore 用于我的视图渲染。
我没有任何特定的页面控制器。
是否可以将玻璃映射器与视图渲染结合使用?
这通常是通过视图顶部的 inherits 指令完成的:
@using Glass.Mapper.Sc.Web.Mvc
@inherits GlassView<Breadcrumb>
然后在页面上您可以正常使用您的模型;如果,在某种情况下,你想让你的标题页面编辑器友好 - 那么你可以使用以下结构来访问你的模型属性:
@Editable(x=>x.Title)
马丁是正确的。但是,如果您使用的是 Glass v4,请注意您不需要继承 GlassView
,而是可以根据需要使用更自然的 @model
+ @Html
HtmlHelper 语法。
@Html.Glass().Editable(x => x.Title);
我想在 Sitecore 8 MVC 上创建一个基于 Razor 的面包屑导航。 我创建了一个页面模板,其中包含一些 属性 将用于它。 视图渲染已创建并添加到布局项(页面)。 我已经使用 while loop
为这个渲染创建了一个 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>
但它看起来对我来说不是很理想,我想使用 Glass Mapper
我创建了一个具有祖先访问权限的 class
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; }
}
但我不知道如何 'say' 将 sitecore 用于我的视图渲染。 我没有任何特定的页面控制器。
是否可以将玻璃映射器与视图渲染结合使用?
这通常是通过视图顶部的 inherits 指令完成的:
@using Glass.Mapper.Sc.Web.Mvc
@inherits GlassView<Breadcrumb>
然后在页面上您可以正常使用您的模型;如果,在某种情况下,你想让你的标题页面编辑器友好 - 那么你可以使用以下结构来访问你的模型属性:
@Editable(x=>x.Title)
马丁是正确的。但是,如果您使用的是 Glass v4,请注意您不需要继承 GlassView
,而是可以根据需要使用更自然的 @model
+ @Html
HtmlHelper 语法。
@Html.Glass().Editable(x => x.Title);