C# MVC4 执行特性之后不再执行Action

本文介绍在ASP.NET MVC应用中如何正确使用控制器过滤器进行页面跳转,避免因使用不当导致的逻辑错误。通过设置filterContext.Result为RedirectResult实例,可以有效地控制流程,防止不必要的action执行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关键地方, 在OnActionExecuting函数中,不能使用filterContext.HttpContext.Response.Redirect(url)来定向,打断点可以发现一样会执行action里面代码。应该设置filterContext.Result来控制转向。

 1                     string returnUrl = HttpContext.Current.Request.Url.PathAndQuery;
 2                     var url = FormsAuthentication.LoginUrl + "?returnUrl=" + HttpUtility.UrlEncode(returnUrl);
 3                     //HttpContext.Current.Response.Redirect(url, true);//进入action
 4                     //filterContext.HttpContext.Response.Redirect(url);//进入action
 5                     /*filterContext.Result = new RedirectToRouteResult( //不进入action
 6                     new RouteValueDictionary
 7                     {
 8                         { "action", "Login" },
 9                         { "controller", "Admin" },
10                         {"returnUrl", returnUrl}
11                     });*/
12                     filterContext.Result = new RedirectResult(url);//不进入action,转到登录页面。

 

转载于:https://www.cnblogs.com/xygui/p/5584033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值