【发布时间】:2011-09-29 23:56:08
【问题描述】:
我正在实现一个 IActionFilter 来验证 MVC3 中的请求,如果我的验证返回 false,我想将请求重定向到 IActionFilter 中的不同控制器。
我希望能够终止当前请求的处理并将请求完全重定向到不同的控制器操作。
我也愿意使用 IAuthorizationFilter,但这在很大程度上与 IActionFilter 相同。
感谢您的帮助。
【问题讨论】:
标签: asp.net-mvc-3
我正在实现一个 IActionFilter 来验证 MVC3 中的请求,如果我的验证返回 false,我想将请求重定向到 IActionFilter 中的不同控制器。
我希望能够终止当前请求的处理并将请求完全重定向到不同的控制器操作。
我也愿意使用 IAuthorizationFilter,但这在很大程度上与 IActionFilter 相同。
感谢您的帮助。
【问题讨论】:
标签: asp.net-mvc-3
有几种方法可以做到这一点 - 这里提供了一些好的方法: Redirecting to specified controller and action in asp.net mvc action filter
简而言之,您可以使用 ctx.Response.Redirect() 或根据过滤器上下文创建新路由。
确保您重定向到的任何地方都不会通过身份验证,否则您可能会陷入循环,除非您在特定的 url 中进行编码,这有点 hacky。
如果您对此有任何疑问,请回帖,我们会为您提供帮助,但这应该没问题。
【讨论】: