Sitecore PageEditor随机显示Glass.Mapper的错误

时间:2014-12-19 21:52:02

标签: asp.net-mvc sitecore glass-mapper sitecore7.5

当我使用Glass.Mapper在我的Sitecore网站上以页面编辑器模式打开页面时,我有时会收到错误。

  

您无法保存不包含该属性的类   表示商品ID。确保至少有一处房产   标记为包含Sitecore ID。类型:   Castle.Proxies.IBasicPageProxy   在Glass.Mapper.Sc.Configuration.SitecoreTypeConfiguration.ResolveItem(Object   目标,数据库数据库)   在Glass.Mapper.Sc.GlassHtml.MakeEditable [T](Expression'1字段,Expression'1 standardOutput,T模型,对象参数,   Context context,Database database,TextWriter writer)

这出现在渲染的位置,因此它不会显示为标准的ASP错误。

重新启动IIS解决了这个问题,但很快就会再次出现..

我使用接口进行模型定义,每个接口都继承自IBaseType:

[SitecoreType]
public interface IBaseType
{
    [SitecoreId]
    Guid Id { get; set; }

    [SitecoreInfo(SitecoreInfoType.Name)]
    string Name { get; set; }

    [SitecoreItem]
    Item InnerItem { get; set; }

    [SitecoreInfo(SitecoreInfoType.Url)]
    string Url { get; set; }

    [SitecoreInfo(SitecoreInfoType.TemplateId)]
    Guid TemplateId { get; set; }

    [SitecoreInfo(SitecoreInfoType.FullPath)]
    string FullPath { get; set; }
}

我使用Sitecore 7.5 rev。 141003(.NET 4.5,MVC5),以及最新版本的Glass.Mapper相关的NuGet包目前:

  • Castle.Windsor 3.3.0
  • Castle.Core 3.3.3
  • Glass.Mapper 3.0.14.26
  • Glass.Mapper.Sc 3.2.3.46
  • Glass.Mapper.Sc.CastleWindsor 3.3.0.24
  • Glass.Mapper.Sc.Mvc-5 3.3.0.43

问题出现在我们尝试的所有计算机上,但它们都使用Windows 8,IIS 8.5.9600。我尝试恢复到WebActivator方法,但它没有帮助。模型定义位于单独的类库项目中,该项目引用所有玻璃映射器程序集。

我很无能,在其他项目之前从未遇到过这个错误。有没有人知道是什么原因导致的,或者我如何调试它?

感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

我已将下面的代码放在我的模型中并且它可以正常工作

[SitecoreId]
public virtual Guid Id { get; set; }

答案 1 :(得分:-2)

Glass mapper要求Item由ID表示。如果玻璃模型没有GUID属性,您将看到此错误。

您可以通过添加属性公共虚拟GUID ID {get;设置;} 到您的玻璃模型