从IActionFilter永久重定向后,Orchard CMS继续执行请求

时间:2013-05-15 09:55:02

标签: asp.net-mvc orchardcms action-filter

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

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

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

根据文档,第二个参数表明将抛出ThreadAbortException来中止当前请求。但是,仍然会为遗留URL处理请求,我知道这是因为部分驱动程序仍然执行两者旧URL和新URL。

如果没有Orchard继续执行它,我怎样才能从过滤器中止请求?

1 个答案:

答案 0 :(得分:1)

刚刚解决了这个问题。需要改为使用它:

filterContext.Result = new RedirectResult(targetPath, true);

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