Sitecore Glass 映射器 GetItem<TypeName>(itemPath) returns 投射为自定义类型时为 null
Sitecore Glass mapper GetItem<TypeName>(itemPath) returns null when casting as custom type
当我使用 Glass Mapper 的 SitecoreContext().GetItem<Sitecore.Data.Items.Item>(ItemPath)
时,它工作正常,但是当我将它与 TDS + Glass 生成的自定义模型一起使用时,它 returns null
.
我的代码如下:
NavigationHelper.cs
public class NavigationHelper
{
public static int GetChildCount()
{
var context = new SitecoreContext();
string g = "/sitecore/content/home/Site Settings/Top Navigation Items";
var t = context.GetItem<Models.sitecore.templates.Navigation.Navigation_Item_Folder>(g);
var v = context.GetItem<Items.Item>(g);
// t is always null, but v always finds the item correctly.
return t.Children.Count();
}
}
Models.sitecore.templates.Navigation.Navigation_Item_Folder
是Glass和TDS生成的模型如下:
/// <summary>
/// Navigation_Item_Folder
/// <para></para>
/// <para>Path: /sitecore/templates/Navigation/Navigation Item Folder</para>
/// <para>ID: c0f00c6b-145e-47f2-9427-57df58a612f1</para>
/// </summary>
[SitecoreType(TemplateId=INavigation_Item_FolderConstants.TemplateIdString)] //, Cachable = true
public partial class Navigation_Item_Folder : GlassBase, INavigation_Item_Folder
{
}
它只是一个文件夹,因此上面没有字段。我试过扩展此部分 class 以包含标题字段,但这并没有解决问题。
我已经尝试过这里的步骤:Sitecore Glass mapper GetItem<TypeName>(guid) always return null 但它们没有帮助。
你可以试试 {C0F00C6B-145E-47F2-9427-57DF58A612F1}
的 guid 吗?我发现标准 Sitecore 查询在通过模板 ID 定位项目时存在区分大小写的问题。
当我使用 Glass Mapper 的 SitecoreContext().GetItem<Sitecore.Data.Items.Item>(ItemPath)
时,它工作正常,但是当我将它与 TDS + Glass 生成的自定义模型一起使用时,它 returns null
.
我的代码如下:
NavigationHelper.cs
public class NavigationHelper
{
public static int GetChildCount()
{
var context = new SitecoreContext();
string g = "/sitecore/content/home/Site Settings/Top Navigation Items";
var t = context.GetItem<Models.sitecore.templates.Navigation.Navigation_Item_Folder>(g);
var v = context.GetItem<Items.Item>(g);
// t is always null, but v always finds the item correctly.
return t.Children.Count();
}
}
Models.sitecore.templates.Navigation.Navigation_Item_Folder
是Glass和TDS生成的模型如下:
/// <summary>
/// Navigation_Item_Folder
/// <para></para>
/// <para>Path: /sitecore/templates/Navigation/Navigation Item Folder</para>
/// <para>ID: c0f00c6b-145e-47f2-9427-57df58a612f1</para>
/// </summary>
[SitecoreType(TemplateId=INavigation_Item_FolderConstants.TemplateIdString)] //, Cachable = true
public partial class Navigation_Item_Folder : GlassBase, INavigation_Item_Folder
{
}
它只是一个文件夹,因此上面没有字段。我试过扩展此部分 class 以包含标题字段,但这并没有解决问题。
我已经尝试过这里的步骤:Sitecore Glass mapper GetItem<TypeName>(guid) always return null 但它们没有帮助。
你可以试试 {C0F00C6B-145E-47F2-9427-57DF58A612F1}
的 guid 吗?我发现标准 Sitecore 查询在通过模板 ID 定位项目时存在区分大小写的问题。