Razor Sitecore MVC ViewRendering和GlassMapper
我想在Sitecore 8 MVC上创建一个基于Razor的面包屑。 我创建了一个页面模板,其中包含一些将用于该模板的属性。 视图呈现已创建并添加到布局项(第页)。 我已经用while循环为这个渲染创建了一个cshtml文件Razor Sitecore MVC ViewRendering和GlassMapper,razor,sitecore,glass-mapper,sitecore-mvc,sitecore8,Razor,Sitecore,Glass Mapper,Sitecore Mvc,Sitecore8,我想在Sitecore 8 MVC上创建一个基于Razor的面包屑。 我创建了一个页面模板,其中包含一些将用于该模板的属性。 视图呈现已创建并添加到布局项(第页)。 我已经用while循环为这个渲染创建了一个cshtml文件 <ul> @{ var parentItem = Html.Sitecore().CurrentItem; while (parentItem != null) { if (par
<ul>
@{
var parentItem = Html.Sitecore().CurrentItem;
while (parentItem != null)
{
if (parentItem["Include in breadcrumb"] != "0")
{
<li>@parentItem["Short Title"]</li>
}
parentItem = parentItem.Parent;
}
}
</ul>
@{
var parentItem=Html.Sitecore().CurrentItem;
while(parentItem!=null)
{
if(parentItem[“包含在面包屑中”!=“0”)
{
- @父项[“短标题”]
}
parentItem=parentItem.Parent;
}
}
但它看起来不是很适合我,我想使用玻璃映射器
我创建了一个具有祖先访问权限的类
公共类面包屑
{
[SitecoreQuery(“祖先或自我::*[@#包含在面包屑中#='1']”,IsRelative=true)]
公共虚拟IEnumerable祖先{get;set;}
[SitecoreField(FieldName=“包含在面包屑中”)]
公共虚拟bool IncludeIn{get;set;}
[SitecoreField(FieldName=“Short Title”)]
公共虚拟字符串标题{get;set;}
}
但我不知道如何“告诉”sitecore将其用于视图渲染。
我没有任何特定的页面控制器
是否可以在视图渲染中使用一些how glass mapper?这通常是通过视图顶部的inherits指令完成的:
@using Glass.Mapper.Sc.Web.Mvc
@inherits GlassView<Breadcrumb>
这通常通过视图顶部的“继承”指令完成:
@using Glass.Mapper.Sc.Web.Mvc
@inherits GlassView<Breadcrumb>
马丁是对的。但是,如果您使用的是Glass v4,请注意,您不需要继承自
GlassView
,而是可以使用更自然的@model
+@Html
HtmlHelper语法(如果需要)
@Html.Glass().Editable(x => x.Title);
马丁是对的。但是,如果您使用的是Glass v4,请注意,您不需要继承自
GlassView
,而是可以使用更自然的@model
+@Html
HtmlHelper语法(如果需要)
@Html.Glass().Editable(x => x.Title);
小问题:如何对foreach循环中的项目使用@Editable(x=>x.Title)?只有在您需要面包屑页面可编辑时才使用它。常识告诉我,这不是您的情况。但是如果是-只需将@parentItem[“Short Title”]替换为@Editable(x=>x.ShortTitle)或模型的任何属性名称即可。这里有更多示例文档:小问题如何对foreach循环中的项目使用@Editable(x=>x.Title)?只有在您需要面包屑页面可编辑时才使用它。常识告诉我这不是您的情况。但是如果是-只需将@parentItem[“Short Title”]替换为@Editable(x=>x.ShortTitle)或模型的任何属性名称即可。更多文档和示例如下: