C# MVC Filter过滤器如何停止往下执行

我是在过滤器中判断用户是否有权限访问该Action,不管是True还是false它都会执行完过滤器后往下执行,我想在过滤器中得到false后,终止访问往下执行,该如何做呢... 我是在过滤器中判断用户是否有权限访问该Action,不管是True还是false它都会执行完过滤器后往下执行,我想在过滤器中得到false后,终止访问往下执行,该如何做呢? 展开
 我来答
mort_1990
2013-02-21 · 超过22用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:19.2万
展开全部
使用这种方式是可以实现的。filterContext.Result = new RedirectResult("/Home/login");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
草薙在
2012-10-11 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6250万
展开全部
你这是开发mvc可不是开发asp,什么年代了还Response.Write呢?

设置filterContext的Result为一个ViewResult来阻止执行Action
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
重典技术闲话
2012-10-11 · TA获得超过2173个赞
知道大有可为答主
回答量:2593
采纳率:0%
帮助的人:1130万
展开全部
filterContext.Result = new ContentResult(){ Content="<script..."};

//....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
nansas在路上
2019-11-28
知道答主
回答量:3
采纳率:0%
帮助的人:2046
展开全部
你想要不执行action 加这句话:filterContext.Result = new EmptyResult();
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
du瓶邪
推荐于2017-10-06 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:2788万
展开全部
当ActionInvoker在执行目标Action方法之前,会根据Order和Scope属性对用于封装ActionFilter的Filter对象进行排序。
然后根据当前ControllerContext和ActionDescriptro创建一个ActionExecutingContext对象,并将其作为参数依次调用所有ActionFilter的OnActionExecuting方法。
在这之后真正的目标Action方法被执行,ActionInvoker随后执行后续的筛选操作。具体来说,它根据当前ControllerContext、ActionDescriptro以及Action方法执行过程中抛出的异常创建一个ActionExecutedContext对象。该ActionExecutedContext的Cancel属性为False,如果Action方法返回一个ActionResult对象,该对象将会作为该ActionExecutedContext的Result属性。
接下来按照相反的次序依次调用ActionFilter对象的OnActionExecuted方法,执行过程中的ActionFilter可以修改ActionExecutedContext的Result属性。当整个ActionFilter链执行结束之后,ActionExecutedContext的Result属性返回的ActionResult将会作为对当前请求的响应。右图基本上反映了连同目标Action在内的整个ActionFilter链的执行过程。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式