我一直在寻找解决方案,但找不到版本7的任何东西.
我只需更新Umbraco 7节点上的日期属性.(不是发布日期)然后我需要告诉umbraco重新发布页面/更新缓存.
在下面的代码中,单个节点是"item",如果它发现item的checkbox属性设置为true,那么它应该将日期增加1年.
if(item.annual.ToString()=="True")
{
item.deadlineDate = item.deadlineDate.AddYears(1);
}
Run Code Online (Sandbox Code Playgroud)
任何和所有建议都非常欢迎,
此致,Damien Holley
假设您的item变量是动态的,首先需要将其id传递给管理API服务:
var contentService = ApplicationContext.Current.Services.ContentService;
var content = contentService.GetById(item.Id);
content.SetValue("deadlineDate", item.deadlineDate.AddYears(1));
contentService.SaveAndPublish(content);
Run Code Online (Sandbox Code Playgroud)
这将保留该值并使其在应用程序的其他位置可用.它还将使用admin用户的帐户进行更新,因此如果您希望审计跟踪显示其他内容,则需要使用将用户ID传递给该SaveAndPublish方法.
最后,您需要注意在视图中使用Management API.由于前端用户操作,不仅可能丢失数据,而且ContentService与查询API(IPublishedContent或DynamicPublishedContent)不同,它还会导致性能问题,因为它总是会影响数据库.
编辑:我刚刚注意到Jannik的答案中的评论或多或少提供了相同的答案.
ContentService是您的朋友:-) https://our.umbraco.org/documentation/Reference/Management/Services/ContentService
有了它,您既可以保存也可以发布内容.
| 归档时间: |
|
| 查看次数: |
2800 次 |
| 最近记录: |