新建一个网站项目 ,两个页面Default.aspx,default2.aspx,default.aspx中写如下代码:
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location","Default2.aspx");
Response.End()
Default.apsx中写
Response.write("301跳转之后的页面");
运行,正确跳转到default2.aspx
然后,删除default.aspx中的代码,只留下Page_Load方法,运行,依然到default2.aspx页面!排除Default2.aspx,报404错,找不到页面。在default.aspx设置断点,进不去,根本不走default.aspx.cs。把default2.aspx重新加入项目,令其301跳转到default.aspx,恢复正常,能够debug default.aspx页面,再排除default2.aspx,运行,不再报错,像default2.aspx不存在一样。
这个现象看起来就是,一旦设置了 301跳转,有个地方记载了这件事,并且认为设置跳转源的页面不再有效,直接运行跳转目标页,而不是每次都去执行跳转代码。
问题是,谁记的?记在哪里了?