【发布时间】:2023-03-31 13:45:01
【问题描述】:
当我使用 Glass.Mapper 在我的 Sitecore 网站上以页面编辑器模式打开页面时,有时会收到错误消息。
您不能保存不包含以下属性的类 表示项目 ID。确保至少有一处房产 标记为包含 Sitecore ID。类型: Castle.Proxies.IBasicPageProxy 在 Glass.Mapper.Sc.Configuration.SitecoreTypeConfiguration.ResolveItem(对象 目标,数据库数据库) 在 Glass.Mapper.Sc.GlassHtml.MakeEditable[T](Expression'1 字段,Expression'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 包:
- 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 方法,但没有帮助。模型定义在一个单独的类库项目中,它引用了所有玻璃映射器程序集。
我很无能,之前在其他项目中从未遇到过这个错误。有谁知道什么会导致这种情况,或者我如何调试它?
感谢您的帮助!
【问题讨论】:
-
您能发布您的 IBasicPage 的接口/类代码吗?
-
Castle 抱怨的是 IBasicPage 而不是 IBasicType。你能像艾哈迈德说的那样做吗?
-
我在 SC 7.2 Update-3 (Glass.Mapper.Sc v3.2.3.49) 中得到了同样的行为。我通过 TDS 专门使用接口和代码生成。 IIS 重置暂时修复它。
标签: asp.net-mvc sitecore glass-mapper sitecore7.5