Sitecore saveUI处理器在移动项目页后重定向到项目页

Sitecore saveUI处理器在移动项目页后重定向到项目页,sitecore,sitecore7,Sitecore,Sitecore7,我已经实现了一个Sitecore saveUI处理器,用于将新闻项移动到年/月层次结构中的特定位置。除了在页面编辑器中使用(导航到项目的页面,然后尝试保存并隐式移动项目)时,我被重定向到404页面,因为Sitecore希望原始项目的url在操作后仍然有效之外,它做得很好。 有没有办法告诉Sitecore项目已被移动?我在考虑SaveArgs中的一些属性,但任何解决方案都可以,只要它具有一定的可维护性(例如,如果可能的话,我更喜欢服务器端解决方案,而不是基于JavaScript的客户端解决方案)。

我已经实现了一个Sitecore saveUI处理器,用于将新闻项移动到年/月层次结构中的特定位置。除了在页面编辑器中使用(导航到项目的页面,然后尝试保存并隐式移动项目)时,我被重定向到404页面,因为Sitecore希望原始项目的url在操作后仍然有效之外,它做得很好。

有没有办法告诉Sitecore项目已被移动?我在考虑SaveArgs中的一些属性,但任何解决方案都可以,只要它具有一定的可维护性(例如,如果可能的话,我更喜欢服务器端解决方案,而不是基于JavaScript的客户端解决方案)。

,确保您的处理器是管道中的最后一个处理器,并将以下代码添加到process方法的末尾:

if(Sitecore.Context.PageMode.IsPageEditor)
{
var item=args.SavedItems.First()//或者Context.item;
var url=LinkManager.GetItemUrl(项目);
HttpContext.Current.Response.Redirect(url);
}
您是否尝试过使用? 这可以无缝地工作,并且可以作为替代创建自定义移动器的方法。我们已经使用了很多次,它似乎在所有条件下都能很好地工作

此文件的示例配置:

    <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>

公布日期
用户定义/文件夹/文章年份文件夹
用户定义/文件夹/文章月文件夹

不幸的是,这似乎不起作用。我将处理器移动到列表的底部,并添加了您建议的更改,但我仍然被重定向到404页面。我认为它应该是
HttpContext.Current.Response.Redirect(url),无疑是马丁的打字错误。已更新!没有什么比直接编码到SO:-)看看管道中的处理器之后,我想也许你应该试着把你的代码放在
PostAction
@MartinDavies之前不幸的是,这也不起作用。在处理器内部,IsPageEditor似乎没有设置为true,即使没有该条件,在将PE中的项目保存(并隐式移动)到该项目的表示组件后,我也不会被重定向。相反,我仍然被重定向到404页面。谢谢,我一定会试试这个。目前,我已经放弃了最初的解决方案,实现了一个项目:为新闻项目创建事件处理程序。这种方法的缺点是,它按创建日期而不是按选定的新闻日期排序新闻项。我想我至少可以研究一下Newsmover模块的代码,看看我最初的实现中出现了什么问题。