當我使用玻璃映射的SitecoreContext().GetItem<Sitecore.Data.Items.Item>(ItemPath)
它工作正常,但只要我用它與TDS +玻璃產生我的定製機型,它返回null
。Sitecore的玻璃映射的GetItem <TypeName>(itemPath)自定義類型轉換時返回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
是玻璃和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
{
}
這只是一個文件夾,所以它沒有字段。我試圖擴展這個部分類以包含一個標題字段,但是這並沒有解決問題。
我已經試過這裏的步驟:Sitecore Glass mapper GetItem<TypeName>(guid) always return null但他們沒有幫助。
Sitecore API將返回一個Item對象,如果它存在但Glass只會返回對象,如果它也有當前語言的任何版本。你可以檢查v.Versions是否有。我相信v4有一個配置設置用於修改行爲。 – RvanDalen