gpt4 book ai didi

c# - 什么时候最好使用 false 作为 Response.Redirect 的第二个参数,什么时候不使用?

转载 作者:行者123 更新时间:2023-11-30 22:12:03 34 4
gpt4 key购买 nike

一般来说,对于.NET大家推荐使用:

Response.Redirect("url", false)

代替

Response.Redirect("url", true)

避免竞争条件,因为后者显然会突然结束该过程。

是否存在使用 true 而不是 false 有意义的情况?

当重定向不是回发到完全相同的 aspx 页面而是重定向到不同的 aspx 页面时,false 是否也比 true 更合适?

最佳答案

最简单的情况是,当您想结束响应时使用true,而当您不想结束时使用false。 (请注意,如果在这种情况下未提供任何内容,则 true 是默认值。)

对于初学者来说,以这种方式结束响应会抛出一个ThreadAbortException,所以通常我会尽可能避免它。多年来,这种确切的异常情况让生产环境中的许多 ASP.NET 开发人员大吃一惊。并且没有必要在没有异常发生时抛出异常,只是正常的逻辑流程。

我认为最佳实践是相应地构建逻辑流,这样您就可以结束执行而不必中止线程。在许多情况下,Response.Redirect() 之后的一个简单的return; 即可完成该操作。在更复杂的情况下(即,在您最终在大型代码隐藏方法中得到大量 return; 路径的情况下),问题可能不在于重定向,而在于需要重构为更易于管理的东西的失控方法大小。

请记住,Response.Redirect() 不是退出方法的方法。暂时忘记您正在执行重定向这一事实,并考虑这是正常的 C# 代码,逻辑流需要相应地退出该方法。如果 Response.Redirect() 是方法做的最后一件事,或者一般逻辑流做的最后一件事,那么你应该没问题。

关于c# - 什么时候最好使用 false 作为 Response.Redirect 的第二个参数,什么时候不使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19911262/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com