在代码中删除Orchard CMS HtmlWidget

时间:2012-12-16 20:28:23

标签: orchardcms orchardcms-1.6

我有一个带有IdentityPart的HtmlWidget,其Id值类似于“/ Identifier = 40b3f227-61af-4d8b-95c9-53bd6021a70e”。

  <HtmlWidget Id="/Identifier=40b3f227-61af-4d8b-95c9-53bd6021a70e" Status="Published">
    <IdentityPart Identifier="40b3f227-61af-4d8b-95c9-53bd6021a70e" />
    ....

在代码中删除这样的小部件的正确方法是什么? 我假设我们以某种方式使用contentmanager抓取对象并删除或取消发布它。但我不确定这样做的确切机制。希望得到关于该方法的一个例子和一些指导。

1 个答案:

答案 0 :(得分:2)

基本上,您可以按照建议使用内容管理器检索项目。例如,如果您想按标识检索项目:

var item = _contentManager.Query<IdentityPart, IdentityPartRecord>()
    .Where(c => c.Identifier == "40b3f227-61af-4d8b-95c9-53bd6021a70e")
    .Slice(0, 1).FirstOrDefault();

然后将检索到的内容项传递回内容管理器以删除或取消发布:

if (item != null)
{
    //delete the item - remains in the db but is no longer a draft or published
    _contentManager.Remove(item.ContentItem);
    //or unpublish
    _contentManager.Unpublish(item.ContentItem);
}