我是靠谱客的博主 如意夕阳,最近开发中收集的这篇文章主要介绍关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法...关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法

 

在传统的ASP.NET中,使用Response.Redirect("")可以直接对页面进行转向,并且结束当前进程,不再往下执行.

    但是在MVC中不知是微软有意而为之还是就是一个BUG(例如@Html.DropDownList 的Name BUG),当使用Response.Redirect进行页面转向的时候并不会中断当前页面执行,这很不符合预期,并会产生难以预期的后果,即使参数加上true也一样无效.

复制代码
    
public ActionResult RedirectError()
{
if (true)//比如这里是登陆验证通过了,要转到后台主页了
{
Response.Redirect("http://www.chengchenxu.com", true);
}
int a = 7 - 7;
int b = 7 / a; //制造一个运行时异常,访问此页面会直接产生异常,并且难以跳转.
return View();
}
复制代码

 

 

    以上代码如果在一个Action中,访问时和预期不符,会继续执行而产生异常,并不会发生跳转,这不得不说是一个BUG.

    screen shot 2018-03-06 at 20.57.30 pm.png

    现在我们尝试用RedirectToAction()来试一下,结果还是一样

screen shot 2018-03-06 at 21.04.24 pm.png

 

 

 

    解决方法如下,创建一个EmpeyResult然后返回就可以了,代码如下:

复制代码
if (true)//比如这里是登陆验证通过了,要转到后台主页了
{
Response.Redirect("http://www.chengchenxu.com", true);
EmptyResult er = new EmptyResult();
return View(er);
}
int a = 7 - 7;
int b = 7 / a; //制造一个运行时异常,访问此页面会直接产生异常,并且难以跳转.
return View();
复制代码

 

        这样的话就没有问题了,不知道是不是我的用法不对还是其他什么问题,按照常理来说执行完跳转动作之后就应该中断当前页面而去执行新的页面,MVC中这个地方让人摸不着头脑,好在有解决方法,并且比较简单.

 

示例代码下载:

ChengChenXu.com.RedirectTest.rar

 

本文为博主原创,转载请保留出处:
http://www.chengchenxu.com/Article/17/redirect

 
return Redirect(" http://www.chengchenxu.com");
用这个可以直接跳出
支持(1) 反对(0)
   回复引用
#2楼 [ 楼主] 2018-03-07 16:55 程晨旭
可以,谢谢提醒.
支持(0) 反对(0)
   回复引用
#3楼   2018-03-07 17:05 大漠孤阳
mark
 

转载于:https://www.cnblogs.com/cjm123/p/8623631.html

最后

以上就是如意夕阳为你收集整理的关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法...关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法的全部内容,希望文章能够帮你解决关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法...关于ASP.NET MVC中Response.Redirect和RedirectToAction的BUG (跳转后继续执行后面代码而不结束进程)以及处理方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部