Asp.net mvc Orchard CMS在从IActionFilter永久重定向后继续执行请求
我们有一个使用Orchard CMS的网站,我们已经编写了一个“重定向过滤器”来对遗留URL进行永久重定向(别名与相关内容项的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
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