Sitecore参数和数据处理程序

时间:2015-04-30 00:13:57

标签: sitecore glass-mapper

我们目前正在将一个大型应用程序从WebForms转换为MVC。我们的应用程序有一个我们称之为动态资源的想法,我们在Sitecore中有指定资源(CSS / JS)的项目,这些项目可以附加到页面,以便在需要时可以动态更改。有了这个,我们有一个子布局(ascx)和一个渲染(cshtml)来完成在页面上获取这些资源的工作。

在动态资源(DR)模板中,我们有4个字段:

  1. 外部CSS - 多行字段
  2. 内部CSS - Tree Ex
  3. 外部JS - 多线字段
  4. 内部JS - Tree Ex
  5. 我们希望我们的代码像这样代表这个模板:

    string[] ExternalCss{get;set;}
    IDynamicResourceItem[] InternalCss{get;set;}
    string[] ExternalJs{get;set;}
    IDynamicResourceItem[] InternalJs{get;set;}
    

    如您所知,string[]不起作用,因为Glass Mapper代码本身并不将多行字段转换为字符串数组;它将整个字段值作为单个对象放入数组中。

    我去创建了一个AbstractSitecoreFieldMapper并注册了它,它作为MVC渲染的模型非常有用。但是,ascx并不起作用。我们通过sublayout的参数提取模板信息,我认为这是潜在的问题。但即使在我的测试中,如果我提取DR项并使用item.GlassCast代替GetRenderingParameters,它仍然无法正常工作。我相信MVC模型映射的管道使用AbstractSitecoreFieldMapper而其他方法不使用。

    如何通过GetRenderingParameters正确映射?

1 个答案:

答案 0 :(得分:0)

为什么不使用名称值列表?您可以为各种CSS / JS提供一个逻辑名称,以便在未使用的“名称”部分中更容易识别,并通过Glass为这种类型的字段进行渲染而创建的System.Collections.Specialized.NameValueCollection运行?