1

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

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

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

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

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

4

1 回答 1

1

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

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

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

于 2013-05-15T10:06:06.840 回答