ASP.NET MVC从属性重定向

我正在尝试从方法属性执行重定向。 它似乎工作:

public class MyAttribute: ActionFilterAttribute { [..] public override void OnActionExecuting(ActionExecutingContext filterContext) { [..] filterContext.HttpContext.Response.Redirect(urlToRedirectTo, true); [..] 

唯一的问题是重定向是在它附加到的方法结束后执行的,而我想重定向以防止执行该方法。

有帮助吗? 谢谢

您可以通过将ActionResult分配给filterContext.Result来阻止执行操作方法。 例如:

 filterContext.Result = new RedirectResult(urlToRedirectTo); 

你需要添加

 filterContext.HttpContext.Response.End(); 

编辑:顶部是错的,底部是正确的

这应该工作

 filterContext.Result = new RedirectResult(UrlToRedirectTo); 

如果你返回一个ActionResult然后它会被动作本身执行,所以这应该跳过动作。