在ASP中强制重定向属性.asp.net MVC之前从ASP中的控制器到达一段.净MVC

本文关键字:MVC ASP 控制器 一段 重定向 属性 asp net | 更新日期: 2023-09-27 17:54:35

可能是一个简单的问题。请让我告诉你我的问题是什么。

我有一个自定义属性,比如

public class MyCustomAttribute: ActionFilterAttribute
{
   public override void OnActionExecuting( ActionExecutingContext filterContext )
      {
        if(somethingTrue) {
           filterContext.Result = new RedirectToRouteResult ( ... );
        }
     }
}

和控制器类

[MyCustom]
public class ContactController: Controller 
{
    protected override void OnResultExecuting( ResultExecutingContext filterContext )
    {
        // so something
    }
}

如果我把断点放到OnResultExecuting方法,即使我把一个属性放在控制器类的顶部,它也会到达。

我希望控制器不会到达OnResultExecuting方法,因为我创建了一个重定向结果。

还是我的问题是我没有正确理解属性?

在ASP中强制重定向属性.asp.net MVC之前从ASP中的控制器到达一段.净MVC

我猜你想跳过OnResultExecuting,所以我宁愿写下面的代码:-

 public override void OnActionExecuting( ActionExecutingContext filterContext)
      {
        if (true)
        {
            //Create your result
            filterContext.Result = new EmptyResult();
        }
        else
            base.OnActionExecuting(filterContext);
    }