我正在构建一个自定义内容部分,它从外部存储库中获取其信息,主要遵循@如何更改 Orchard 记录存储库并使用自定义处理程序来获取数据的建议。
使用外部数据存储打开了各种网络异常等的可能性,这将导致底层记录无法保存。但是,如果在 中抛出异常ContentHandler
,它会被该方法吞噬,Invoke<TEvents>
因此(除非它是“致命”异常)用户不会知道该异常,并且会被AdminController
that通知"Your {0} has been saved."
,而实际上它没有没去过。
对我来说显而易见的解决方法是以某种方式拦截错误并通知内容驱动程序我的内容部分,这会暴露正在执行的AdminController
. 那时,我可以连接到控制器ModelState
并引入一个错误,然后将其捕获,然后我会收到错误通知,而不会出现任何误报通知。
ModelState
Orchard 中是否还有其他可用的扩展点可以比通过内容驱动程序更改控制器更好地处理这种外部访问?