当项目不可用时,Sitecore Glass.Mapper错误

时间:2015-09-16 17:02:12

标签: sitecore glass-mapper

我们有一个使用Glass.Mapper的Sitecore网站。我们还有一个简单的两步工作流程,"草稿>准备发布"在所有项目上。有全局项目,可以放在页面上的促销。作者创建宣传片,然后创建页面并将宣传片放在页面上。

如果页面已发布但促销尚未发布,则该页面将返回此错误: 类型' OurSite.Sitecore.Models.IPromo'上的构造函数没找到。

由于作者未能发布新促销的情况是真实的,我想防止发生此错误,以便页面只是在没有促销的情况下呈现。想法?

2 个答案:

答案 0 :(得分:1)

另一种选择是验证getRenderer管道中组件的数据源。 Marek用一个可靠的解决方案在博客上写了这篇文章:

http://www.skillcore.net/sitecore/sitecore-automated-validation-of-mvc-rendering-datasource

这也处理了没有数据源的组件(即项目被删除)破坏了PageEditor页面的情况。

话虽如此,我也相信此外你也应该有一个合适的例外策略。 Jim Noellsch发布的链接非常好。我记得Charlie Turano的这个也是一个坚实的人:

http://www.hhogdev.com/blog/2015/june/mvc-rendering-exception-handler.aspx

答案 1 :(得分:0)

假设IPromo是一个接口,请将其转换为类模型Promo。如果这是MVC解决方案,您还可以覆盖OnException方法以安静地抑制缺少的内容。