C# ASP.NET MVC从属性重定向

C# ASP.NET MVC从属性重定向,c#,.net,asp.net-mvc,asp.net-mvc-2,C#,.net,Asp.net Mvc,Asp.net Mvc 2,我正在尝试从方法属性执行重定向。这似乎有效: public class MyAttribute: ActionFilterAttribute { [..] public override void OnActionExecuting(ActionExecutingContext filterContext) { [..] filterContext.HttpContext.Response.Redirect(urlToRedirectTo,

我正在尝试从方法属性执行重定向。这似乎有效:

public class MyAttribute: ActionFilterAttribute {
    [..]
    public override void OnActionExecuting(ActionExecutingContext filterContext)
    {
        [..]
        filterContext.HttpContext.Response.Redirect(urlToRedirectTo, true);
        [..]
唯一的问题是重定向是在它所附加的方法结束后执行的,而我希望重定向能够阻止方法的执行

有什么帮助吗?谢谢

您需要添加

filterContext.HttpContext.Response.End();
编辑:顶部错误底部正确

这应该行得通

filterContext.Result = new RedirectResult(UrlToRedirectTo);

如果返回ActionResult,则它将在操作本身的基础上执行,因此这应该跳过该操作。

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

filterContext.Result = new RedirectResult(urlToRedirectTo);

我认为他在响应结束时将
true
作为
HttpResponse.Redirect
方法中的第二个参数。。