OnUpdating
/OnUpdated
每次打电话都会被解雇IContentManager.UpdateEditor(item)
。在默认情况下,当您在编辑内容项时点击“保存”按钮时会发生这种情况。
我不太明白您所说的“通过 a访问ContentPart
Controller
”是什么意思?
您是否有处理项目编辑器呈现和回发的自定义控制器?或者您是否在代码中创建和更新某些项目,而根本不使用内置编辑器?
- 在前一种情况下,您需要确保
IContentEditor.UpdateEditor(item)
在 POST 操作中调用整个内容项(与默认控制器中的方式相同 - Core\Contents\Controllers\AdminController.cs
)。
- 在后者中,我猜这里可能就是这种情况,
OnUpdating
/
OnUpdated
不会被解雇,您需要从控制器操作中自己调用 Web 服务,正如 Bertrand 在评论中指出的那样。
还有第三个选项可用,我发现它在类似情况下特别有用:
- 用作
LazyField<T>
更新后需要推送到 Web 服务的那些部件属性的支持字段。
- 将调用 Web 服务的代码放在该惰性字段的设置器中(在处理程序
OnActivated
事件期间设置它)。
- 现在,每当您的属性更新时,都会调用网络服务,即。惰性字段将充当您的 Web 服务和当前代码之间的透明代理。
有关如何使用惰性字段的示例,请查看CommonPartHandler
类和方法LazyLoadHandlers
以及PropertySetHandlers
.