使用 Umbraco,是否有任何方法可以在文档中的字段更新时在代码中触发?
我有一个 umbraco api,它使用存储在表结构中的数据。此数据仅用于计算,不会直接暴露在任何页面上,但我希望后端用户能够对其进行修改。我的代码将获取一个 CSV 文件并将数据上传到表中。我创建了一种数据类型,它只有一个字段是上传字段。我想在更新该文件时触发表更新。另一种方法是让某种文件监视器监视这个特定文件的媒体文件夹,如果 umbraco 没有解决方案,这就是我倾向于的方式。
使用 Umbraco,是否有任何方法可以在文档中的字段更新时在代码中触发?
我有一个 umbraco api,它使用存储在表结构中的数据。此数据仅用于计算,不会直接暴露在任何页面上,但我希望后端用户能够对其进行修改。我的代码将获取一个 CSV 文件并将数据上传到表中。我创建了一种数据类型,它只有一个字段是上传字段。我想在更新该文件时触发表更新。另一种方法是让某种文件监视器监视这个特定文件的媒体文件夹,如果 umbraco 没有解决方案,这就是我倾向于的方式。
是的,有一个 API 可供您使用。对于 Umbraco v6.1+,请参阅 ContentService 中的事件,如此处Saved
所述。
您可以使用 ApplicationEventHandler 接口注册自己的事件处理程序:
public class RegisterEvents : ApplicationEventHandler
{
protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext)
{
Document.Saved += DocumentSaved;
}
private void DocumentSaved(Document sender, PublishEventArgs e)
{
// check your document type and fields to see if it has changed
}
}