我已经实施了Sitecore saveUI处理器,用于将新闻项目移动到年/月层次结构中的特定位置。它做得很好,除了在页面编辑器中使用(导航到项目的页面,然后尝试保存,并隐式移动项目)这一事实我被重定向到我们的404页面,因为Sitecore期望原始项目的手术后网址仍然有效。
有没有办法告诉Sitecore该项目已被移动?我正在考虑SaveArgs中的某些属性,但任何解决方案都可以,只要它有点可维护(例如,我更喜欢服务器端解决方案,而不是基于客户端的JavaScript,如果可能的话)。
答案 0 :(得分:1)
在我的脑海中,确保您的处理器是管道中的最后一个,并将以下代码添加到流程方法的末尾:
if(Sitecore.Context.PageMode.IsPageEditor)
{
var item = args.SavedItems.First() // or perhaps Context.Item;
var url = LinkManager.GetItemUrl(item);
HttpContext.Current.Response.Redirect(url);
}
答案 1 :(得分:0)
您是否尝试过使用Sitecore Newsmover Module? 这可以无缝地工作,可以是去而不是创建自定义移动器的方式。我们已经使用了很多次,它似乎在所有条件下都能很好地工作。
此示例配置:
<template id="User Defined/News Article" sort="Descending">
<DateField>Posted Date</DateField>
<YearTemplate formatString="yyyy">User Defined/Folders/Article Year Folder</YearTemplate>
<MonthTemplate formatString="MMMM">User Defined/Folders/Article Month Folder</MonthTemplate>
</template>