Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中使用Response.Redirect#_C#_Asp.net - Fatal编程技术网

C# 在C中使用Response.Redirect#

C# 在C中使用Response.Redirect#,c#,asp.net,C#,Asp.net,我在一个我继承的网站(ASP.NET和C#)上工作,我注意到,在项目页面的代码隐藏中,几乎每个方法(除了一些帮助程序方法)中,原始作者都使用Response.Redirect()重定向到页面(通常是home.aspx,但并不总是) 这样做的目的是什么?这对我来说似乎是不必要的——至少如果我保留或删除它,它似乎不会改变网站正在做的任何事情 谢谢。没有更多信息,很难确定 但是,如果home.aspx是一个空页面,则可能是原始作者为了阻止后续处理而试图提前终止对该页面的处理 通常,Response.R

我在一个我继承的网站(ASP.NET和C#)上工作,我注意到,在项目页面的代码隐藏中,几乎每个方法(除了一些帮助程序方法)中,原始作者都使用Response.Redirect()重定向到页面(通常是home.aspx,但并不总是)

这样做的目的是什么?这对我来说似乎是不必要的——至少如果我保留或删除它,它似乎不会改变网站正在做的任何事情

谢谢。

没有更多信息,很难确定

但是,如果home.aspx是一个空页面,则可能是原始作者为了阻止后续处理而试图提前终止对该页面的处理

通常,
Response.Redirect()
用于结束响应并通知浏览器导航到新页面。但是,如果浏览器缓存了该页面,它可能不会实际执行到服务器的访问。我见过一些情况,开发人员这样做是为了缩短后续处理的时间


代码也可能做了一些疯狂的事情,比如将
home.aspx
作为所有数据的主显示页面,并使用会话状态或缓存在页面之间传递更改。可悲的是,我也看到了这一切。。。。唉。通常,这样做是为了处理用户能够多次提交表单的问题。

只有当位置由代码中的某些内容确定时,才应该真正使用重定向。重定向往往会导致ThreadAbortException,这只是系统上的进一步需求,而简单的href可能就是医生所要求的。除非您能够定义重定向的真正架构需求,否则您可能只想开始逐步淘汰这些功能。

它会向用户代理/浏览器发送响应,并告诉它重定向到指定页面。它可以放入代码的任何部分,但默认情况下,页面仍将执行到完成,然后重定向响应将设置为客户端


应该只在您正在运行的代码的最后一点(通常)

ASP.NET页面回发到它们自己,所以有些页面使用重定向方法打开新页面。当你需要的时候使用它。如果移除时看不到差异。可能是网站使用链接从一个页面导航到另一个页面,而不是通过服务器进行导航。

Response.Redirect()
向浏览器发出302 HTTP重定向头,这会导致浏览器从您的网站请求新页面


如果作者使用该模式来解决用户能够点击“刷新”按钮并重新发布表单的问题,这也许可以解释为什么到处都使用该模式。

从您发布的内容来看似乎不正确,但我们可能需要了解更多。通常是响应。重定向原因和HTTP重定向在我看到的代码中,重定向总是代码的最后一部分(代码隐藏中方法的最后一行)。但是,很多时候,重定向会指向我已经在的页面。这就是让我困惑的地方。没错!“一般”应该是。。。重定向可以在任何时候从内存中调用,重定向响应将在页面完全完成呈现后发送到浏览器。。。如果他们正在重定向到当前页面,那么这是令人困惑的@沃姆普的想法可能是一个合理的猜测!!!不,home.aspx页面就是主页(它绝对不是空的——事实上有点太满了,但这是另一个问题)。