[英]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.