Asp.net mvc Orchard CMS在从IActionFilter永久重定向后继续执行请求

Asp.net mvc Orchard CMS在从IActionFilter永久重定向后继续执行请求,asp.net-mvc,orchardcms,action-filter,Asp.net Mvc,Orchardcms,Action Filter,我们有一个使用Orchard CMS的网站,我们已经编写了一个“重定向过滤器”来对遗留URL进行永久重定向(别名与相关内容项的AutoroutePart模式不匹配) 过滤器实现IActionFilter并继承FilterProvider。它工作正常,当它执行重定向时,会在OnActionExecuting中调用以下方法: filterContext.HttpContext.Response.RedirectPermanent(targetPath,true) 根据文档,第二个参数表明将抛出Thr

我们有一个使用Orchard CMS的网站,我们已经编写了一个“重定向过滤器”来对遗留URL进行永久重定向(别名与相关内容项的
AutoroutePart
模式不匹配)

过滤器实现
IActionFilter
并继承
FilterProvider
。它工作正常,当它执行重定向时,会在
OnActionExecuting
中调用以下方法:

filterContext.HttpContext.Response.RedirectPermanent(targetPath,true)

根据文档,第二个参数表明将抛出
ThreadAbortException
以中止当前请求。但是,请求仍然针对遗留URL进行处理,我知道这一点,因为部件驱动程序仍然针对遗留URL和新URL执行


如何在Orchard不继续执行的情况下中止来自筛选器的请求?

刚刚解决了这个问题。需要改用此选项:

filterContext.Result=新的重定向结果(targetPath,true)


我猜你不能在过滤器内调用
RedirectPermenant

刚刚解决了这个问题。需要改用此选项:

filterContext.Result=新的重定向结果(targetPath,true)

我猜你不能在过滤器内调用
RedirectPermenant