【发布时间】:2013-03-10 00:36:12
【问题描述】:
Response.Redirect() 遇到问题并收到错误消息:
无法评估表达式,因为代码已优化或本机框架位于调用堆栈顶部
我在 Google 上搜索并在这里找到了一些主题,例如: Unable to evaluate expression because the code is optimized or a native frame is on top of the call stack
人们提议将第二个参数设置为 false 值以使其工作,例如:
Response.Redirect("PageName.aspx", false);
但至于我的程序,它并没有重定向到新的程序……它只是继续停留在这个页面上。
我在其他页面上做了一个断点,我想重定向它。但是断点没有任何事件可以捕获。看起来它只是没有将请求发送到另一个页面。
我的代码比较大,所以我没有在这里发布代码,而是在 ideone: http://ideone.com/bQzCJd
Redirect() 方法在 57th line 上,其中:
- 如果第二个参数设置为
true,则发生异常 - 如果设置为
false,则什么也不会发生
我必须做些什么来修复它?
【问题讨论】:
-
为什么不使用
Response.Redirect("PageName.aspx")而在try/catch之后使用?使用bool变量,例如mustRedirect可以在重定向之前检查。 -
@TimSchmelter 因为将来我想重定向到几个页面。它可能会重定向到个人内阁,它可能会收到通知,这样的 IP 被 DB 禁止,我必须重定向到某些禁止区域等...
-
@OlegOrlov 查看此答案和代码stackoverflow.com/a/14641145/159270
-
@Aristos 感谢有关黑客问题的有趣信息,如果设置为 false 值,但在我的代码中,如果我设置为
true,我就会遇到这样的异常。我该如何解决? -
@OlegOrlov 我输入了忽略此异常的代码,并在链接上对此进行了更多解释。
标签: asp.net redirect expression response evaluate