使用Glass Mapper在Sitecore视图渲染中使用通用类型

西蒙·英格森(Simon Ingeson)

设置

楷模

virtualGlass Mapper需要POCO

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

namespace Sample
{
    public class Parent<T>
    {
        [SitecoreId]
        public virtual Guid Id { get; set; }
        public virtual string Title { get; set; }
        public virtual IEnumerable<T> Children { get; set; }
    }

    public class Article
    {
        [SitecoreId]
        public virtual Guid Id { get; set; }
        public virtual string Title { get; set; }
        public virtual string Text { get; set; }
    }

    public class Teaser
    {
        [SitecoreId]
        public virtual Guid Id { get; set; }
        public virtual string Title { get; set; }
        public virtual Image Banner { get; set; }
    }
}

观看次数

被Sitecore引用为视图渲染,并指向模型Sample.Parent(请参见下文以获取Sitecore模型定义)。

@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Sample.Parent<Sample.Article>>

<h1>@Editable(x => x.Title)</h1>
<div class="article-list">
    @foreach (var article in Model.Children)
    {
        <article class="article">
            <h2 class="article-title">@Editable(article, x => x.Title)</h2>
            <div class="article-content">@Editable(article, x => x.Text)</div>
        </article>
    }
</div>
@inherits Glass.Mapper.Sc.Web.Mvc.GlassView<Sample.Parent<Sample.Teaser>>

<h1>@Editable(x => x.Title)</h1>
<div class="teaser-list">
    @foreach (var teaser in Model.Children)
    {
        <article class="teaser">
            <h2 class="teaser-title">@Editable(teaser, x => x.Title)</h2>
            <div class="teaser-banner">@RenderImage(teaser, x => x.Banner)</div>
        </article>
    }
</div>

Sitecore模型定义

在这里,我不确定我是否做对了。这些是我定义为Sitecore模型的模型类型(在下方/sitecore/layout/models)。

  • Sample.Parent`1[T], Sample

    也尝试过(没有成功):

    • Sample.Parent, Sample
    • Sample.Parent`1[Sample.Article, Sample], Sample
    • Sample.Parent<Sample.Article>, Sample
  • Sample.Article, Sample

  • Sample.Teaser, Sample

这可能吗?

示例代码已简化,但是应该可以捕捉到我正在尝试做的事情。基本上,我希望能够使用泛型类型作为重用更多代码的方式。由于外部限制,我无法使用Glass Mapper 3以外的任何东西。我看到的错误是Sitecore找不到类型,或者是“未设置对象引用”(Sitecore.Mvc.Presentation.RenderingModel, Sitecore.Mvc发生这种情况时,它似乎用作模型) )。

还是我疯了?:)是否有更好的方法来实现这一目标?

迈克尔·爱德华兹

我认为Glass尝试处理通用字符串的方式可能会遇到困难(说实话,我从未设计过处理通用字符串的方法)。

如果您使用的是V4,则无需在Sitecore中定义模型。将模型字段保留为空白,Glass应该通过cshtml文件中的@inherits减速度解析模型。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Glass Mapper在Sitecore MVC视图中继承模型和渲染参数

来自分类Dev

如何使用Sitecore Glass Mapper渲染CSS类的链接

来自分类Dev

如何不使用Sitecore Glass Mapper渲染链接标题

来自分类Dev

Sitecore Glass Mapper-使用项目渲染

来自分类Dev

使用Glass Mapper的Sitecore 8可编辑字段

来自分类Dev

如何在Sitecore 7.x和Solr 4.7中使用Glass Mapper 3.3

来自分类Dev

使用Glass Mapper对子代类型使用流利的映射

来自分类Dev

在Google Glass上使用zxing

来自分类Dev

在Sitecore8.1中使用Glass.Mapper时,“可编辑”上出现运行时错误

来自分类Dev

清除使用Glass.Mapper.Sc BeginRenderLink呈现的Sitecore链接字段可删除包装的字段

来自分类Dev

使用Glass进行身份验证

来自分类Dev

Google Glass:使用PlayGround开发和测试

来自分类Dev

使用GDK的Google Glass制作渐晕

来自分类Dev

使用Sitemap的Glass Mapper获取内部链接的绝对网址

来自分类Dev

如何使用glass.mapper获取项目的模板ID?

来自分类Dev

使用Glass的Sitecore MVC:位于的视图必须源自WebViewPage或WebViewPage <TModel>

来自分类Dev

Google Glass:使用“ Ok Glass,Command”开始一项活动

来自分类Dev

使用新版KitKat Glass,我在API 15下开发的Glass应用程序停止工作

来自分类Dev

使用Glass Mapper处理Sitecore网站上的可选字段和相关标记的最佳方法是什么?

来自分类Dev

使用Google Glass通过无线进行TCP和UDP

来自分类Dev

在Google Glass上使用libstreaming时找不到stsd框

来自分类Dev

使用GDK更新Google Glass中卡的文本?

来自分类Dev

Google Glass GDK-何时使用活动与卡片?

来自分类Dev

使用Mirror API for Glass拍摄和上传图片

来自分类Dev

如何使用Xamarin获得Google Glass手势?

来自分类Dev

无法连接到Windows 7上的Google Glass(使用ADT)

来自分类Dev

使用Sea Glass外观自定义JPanel

来自分类Dev

使用GPUImage重新创建iOS 7 Glass效果

来自分类Dev

如何使用Xamarin获得Google Glass手势?

Related 相关文章

  1. 1

    使用Glass Mapper在Sitecore MVC视图中继承模型和渲染参数

  2. 2

    如何使用Sitecore Glass Mapper渲染CSS类的链接

  3. 3

    如何不使用Sitecore Glass Mapper渲染链接标题

  4. 4

    Sitecore Glass Mapper-使用项目渲染

  5. 5

    使用Glass Mapper的Sitecore 8可编辑字段

  6. 6

    如何在Sitecore 7.x和Solr 4.7中使用Glass Mapper 3.3

  7. 7

    使用Glass Mapper对子代类型使用流利的映射

  8. 8

    在Google Glass上使用zxing

  9. 9

    在Sitecore8.1中使用Glass.Mapper时,“可编辑”上出现运行时错误

  10. 10

    清除使用Glass.Mapper.Sc BeginRenderLink呈现的Sitecore链接字段可删除包装的字段

  11. 11

    使用Glass进行身份验证

  12. 12

    Google Glass:使用PlayGround开发和测试

  13. 13

    使用GDK的Google Glass制作渐晕

  14. 14

    使用Sitemap的Glass Mapper获取内部链接的绝对网址

  15. 15

    如何使用glass.mapper获取项目的模板ID?

  16. 16

    使用Glass的Sitecore MVC:位于的视图必须源自WebViewPage或WebViewPage <TModel>

  17. 17

    Google Glass:使用“ Ok Glass,Command”开始一项活动

  18. 18

    使用新版KitKat Glass,我在API 15下开发的Glass应用程序停止工作

  19. 19

    使用Glass Mapper处理Sitecore网站上的可选字段和相关标记的最佳方法是什么?

  20. 20

    使用Google Glass通过无线进行TCP和UDP

  21. 21

    在Google Glass上使用libstreaming时找不到stsd框

  22. 22

    使用GDK更新Google Glass中卡的文本?

  23. 23

    Google Glass GDK-何时使用活动与卡片?

  24. 24

    使用Mirror API for Glass拍摄和上传图片

  25. 25

    如何使用Xamarin获得Google Glass手势?

  26. 26

    无法连接到Windows 7上的Google Glass(使用ADT)

  27. 27

    使用Sea Glass外观自定义JPanel

  28. 28

    使用GPUImage重新创建iOS 7 Glass效果

  29. 29

    如何使用Xamarin获得Google Glass手势?

热门标签

归档