2013-05-15 76 views
1

我们有一个使用Orchard CMS的网站,我们已经编写了一个“RedirectFilter”来对传统URL进行永久性重定向(与相关模式AutoroutePart不匹配的别名内容项目)。Orchard CMS在IActionFilter永久重定向后继续执行请求

该过滤器执行IActionFilter并继承FilterProvider。它工作正常,当它重定向它OnActionExecuting调用下面的方法:

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

根据第二个参数表明,一个ThreadAbortException将被抛出中止当前请求的文档。但是,该请求仍然针对旧版网址进行处理,我知道这是因为零件驱动程序仍旧执行旧版和新网址

如何在没有Orchard继续执行的情况下中止来自过滤器的请求?

回答

1

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

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

我猜你不能叫RedirectPermenant过滤器内。