简体   繁体   English

强制从ASP.NET MVC中的属性重定向,直到到达ASP.NET MVC中的控制器部分

[英]Force redirect from attribute in ASP.NET MVC before reach a section from controller in ASP.NET MVC

Might be a simple question. 可能是一个简单的问题。 Please let me show you what is my problem. 请让我告诉你我的问题是什么。

I have a custom attribute like 我有一个自定义属性,例如

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

and my controller class 和我的控制器班

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

If I put breakpoint to OnResultExecuting method, it is reached even I put an attribute in top of controller class. 如果我在OnResultExecuting方法上放置断点,即使我在控制器类的顶部放置一个属性也可以达到断点。

I expected that won't reach OnResultExecuting method from controller because I create a redirection result. 我希望不会从控制器到达OnResultExecuting方法,因为我创建了重定向结果。

Or is my problem that I don't understand correctly the attribute ? 还是我无法正确理解属性的问题?

Well i guess you want to skip OnResultExecuting so i would prefer to write below code :- 好吧,我想您想跳过OnResultExecuting所以我希望写以下代码:-

 public override void OnActionExecuting( ActionExecutingContext filterContext)
      {

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM