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

塔玛斯·莫尔纳(Tamas Molnar)

是否可以使用玻璃映射器检查Sitecore项目的模板ID?

我的业务逻辑将执行以下操作:

  1. 获取上下文项
  2. 如果上下文项具有特定模板,则可以
  3. 如果它具有不同的模板,则根据一些业务规则来查找具有该模板的另一个项目,这些规则还将检查该模板

我想使用如下所述的SitecoreContext类:http : //www.glass.lu/Mapper/Sc/Documentation/ISitecoreContext

我的代码如下所示:

var context = new SitecoreContext(); 

var currentItem = context.GetCurrentItem<MyModel>();

if(HasCorrectTemplate(currentItem))
{
   return currentItem;
}

return GetFallbackItem();

我真的不想为此自定义Glass Mapper,因为在我看来,这应该是检查模板ID的基本功能。

我只能考虑为此使用某种棘手的查询,而没有找到有关其他可能性的文档。

马雷克·穆西拉克(Marek Musielak)

您可以尝试使用:

[SitecoreType(EnforceTemplate = SitecoreEnforceTemplate.Template, TemplateId = "{ID}")]
public class MyModel
{
    ...

这是该EnforceTemplate属性的描述

/// <summary>
/// Forces Glass to do a template check and only returns an class if the item
///             matches the template ID or inherits a template with the templateId
/// 
/// </summary>
public SitecoreEnforceTemplate EnforceTemplate { get; set; }

EnforceTemplate设置属性后,Glass Mapper将检查要映射的项目是否与该SitecoreType属性定义的模板的ID相匹配如果是,则返回映射的项目,否则将其跳过。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将标准值应用于使用Glass.Mapper创建的项目

Android:如何从Spinner获取所选项目的ID

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

Glass Mapper V4语言项回退,如何使其与Autofac一起使用?

如何获取新的Google项目的客户ID?

带有List <>项目的Glass Mapper Editable()无法正常工作?

如何在Android项目的google-services.json中获取mobilesdk_app_id参数?

如何使用Glass Mapper获取空值而不是空字符串?

如何获取画布项目的ID?

我们如何获取控制器内部项目的ID?

如何使用pnp powershell获取SharePoint联机列表中最后修改的项目的项目ID?

如何获取运行Java应用程序的GAE项目的ID?

如何使用PowerShell获取现有Azure DevOps项目的项目ID?

如何获取列表中子项目的ID?

如何获取微调器中所选项目的ID?

使用项目模板获取列表框项目的值

如何使用PHP和Google Glass Mirror API批量插入时间轴项目?

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

如何在KnockoutJS中获取所选项目的ID

如何在Kendo Grid上的客户端模板中使用项目的ID创建超链接

如何在CheckListBox中获取项目的ID

Sitecore Glass Mapper-使用项目渲染

如何获取列表视图项目的 ID?我正在使用 Firebase 数据库

如何获取项目的总数?

如何从 WebForms 中的 DropDownList 获取项目的 ID?

如何获取数组中项目的id

如何在 Google Cloud Platform 中获取当前项目的组织 ID?

如何根据cshtml中的ID获取项目的价值?

如何获取从android中的布局操作单击的项目的ID?