Asp.net mvc 如何避免ASP.NET MVC中的重定向循环

Asp.net mvc 如何避免ASP.NET MVC中的重定向循环,asp.net-mvc,redirect,infinite-loop,Asp.net Mvc,Redirect,Infinite Loop,在某些错误情况下,我希望重定向到主控制器,但我希望确保我不会进入“重定向”循环(每次生成一个异常导致另一个重定向)。最好的方法是什么?好的,停止递归的一般方法是使用stop case。在您的示例中,重定向所做的任何事情都可以查看其引用方,并确保它不会尝试“重定向”到引用方。听起来您好像在要求解决该问题(即“我希望在异常时重定向到self,但如果后续调用总是抛出异常,则不会这样做”) 除非在这一领域进行研究(虽然停止问题不可能解决,但通过某些分析可以消除很多情况),我想说,你最好还是做firefo

在某些错误情况下,我希望重定向到主控制器,但我希望确保我不会进入“重定向”循环(每次生成一个异常导致另一个重定向)。最好的方法是什么?

好的,停止递归的一般方法是使用stop case。在您的示例中,重定向所做的任何事情都可以查看其引用方,并确保它不会尝试“重定向”到引用方。

听起来您好像在要求解决该问题(即“我希望在异常时重定向到self,但如果后续调用总是抛出异常,则不会这样做”)

除非在这一领域进行研究(虽然停止问题不可能解决,但通过某些分析可以消除很多情况),我想说,你最好还是做firefox正在做的事情——记下已经发生的自我重定向的数量,如果超过某个数量,就停止重定向


这样做的一种方法可能是包括一个随每个后续“异常抛出重定向”而递增的参数,并在决定是否重定向时与此参数进行比较。

简单的答案是不要重定向到主控制器

改为重定向到静态错误消息页面


这将更干净、更稳定。

如果主控制器本身是一个臭名昭著的异常抛出者,那么在所有异常情况下重定向到主控制器似乎不是一个好主意。不是臭名昭著的。。。你能举一个你想重定向到主控制器的主控制器错误的例子,以及你想重定向到另一个控制器(如错误控制器)的例子吗?事实上,这不是我想要的。有时会出现异常情况,但我希望重定向,即使它是从同一个URL引用的,因为下次它将成功。我只是不想永远这样做。凭良心说,我帮不了你。这就像给一只恐龙指路去拉布雷亚焦油坑。即使它能解决你心中的一个特定错误,如果主页抛出一个你没有计划好的异常呢?您将再次返回重定向循环。从理解我来自哪里的角度来思考。