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

关键地方, 在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,转到登录页面。
复制代码

 

posted @   笑一个有爱  阅读(1104)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示