使用内容服务 API 删除文档不会刷新缓存



在Umbraco 7中,我使用ContentService API插入,更新或删除文档。插入或更新文档后,正确的内容立即显示,但是在删除后,由于缓存而可以查看删除数据。要清除缓存,我将DistCache文件夹的数据从App_data删除。

如何以编程方式刷新缓存?

这是我的代码:

public string DeleteStudent(int studentID)
{
    IContentService service = ApplicationContext.Current.Services.ContentService;
    if (studentID != 0)
    {
        IContent student = service.GetById(studentID);
        if (student != null && student.ContentType.Alias == "dtStudent")
        {
            service.Delete(student);
            return "Done!";
        }
    }
    return "Error!";
}

通常,您不必在删除后手动更新缓存(您可以检查日志文件是否可能发生错误)

如果您想进行手册刷新,则可以通过调用以下方法

进行操作。
umbraco.library.RefreshContent();

注意:在带有许多节点的Umbraco实例中,该方法非常慢

正如@harvey在评论中所说的那样,使用service.MoveToRecycleBin工作 美好的。该方法将未发布内容,然后将其移至 回收箱。

最终代码:

public string DeleteStudent(int studentID)
{
    IContentService service = ApplicationContext.Current.Services.ContentService;
    if (studentID != 0)
    {
        IContent student = service.GetById(studentID);
        if (student != null && student.ContentType.Alias == "dtStudent")
        {
            service.MoveToRecycleBin(student);
            return "Done!";
        }
    }
    return "Error!";
}

,如果右键单击"内容"选项卡,然后单击" Replian Replian total网站",也可以清除Umbraco后台的缓存。从技术上讲,这不是一种程序化的方式,但是快速/简单并且可以完成工作!

    https://i.stack.imgur.com/MIUOh.jpg

相关内容

  • 没有找到相关文章

最新更新