当我使用 Glass.Mapper 在我的 Sitecore 网站上以页面编辑器模式打开页面时,有时会收到错误消息。
您无法保存不包含表示项目 ID 的属性的类。确保至少一个属性已被标记为包含 Sitecore ID。类型:Glass.Mapper.Sc.Configuration.SitecoreTypeConfiguration.ResolveItem(对象目标,数据库数据库)处 Glass.Mapper.Sc.GlassHtml.MakeEditable[T] 处的 Castle.Proxies.IBasicPageProxy(表达式'1 字段,表达式'1 标准输出, T 模型、对象参数、上下文上下文、数据库数据库、TextWriter 编写器)
这出现在渲染的位置,因此它不会显示为标准的 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 包:
- 温莎城堡 3.3.0
- 城堡核心 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 方法,但没有帮助。模型定义在一个单独的类库项目中,它引用了所有玻璃映射器程序集。
我很无知,在其他项目之前从未遇到过这个错误。有谁知道什么会导致这种情况,或者我如何调试它?
谢谢您的帮助!