也许这个问题有点过于笼统,但我会尝试通过解释我的场景来缩小范围。
我有一个登录页面,带有一个html输入按钮:
<input runat="server" id="btnLogin" type="submit" value="Login"></input>
该按钮触发运行验证例程的btnLogin_ServerClick事件。
如果验证用户,则会发生以下情况:
HttpContext.Current.Response.Redirect("~/myPage.aspx")
这在开发环境中都很好。
但是,在部署应用程序之后,仍然会将经过验证的用户重定向到localhost URL,而不是与根目录对应的应用程序URL。
经过大量试验和错误后,我通过将按钮更改为webcontrol命名空间按钮来修复此问题:
<asp:Button runat="server" ID="btnLogin" Text="Login"/>
这会在后面的代码中触发Click事件。
该例程与开发环境中的例程完全相同,但现在用户已重定向到相应的URL。
那么,有没有人可以解释为什么ServerClick事件使Response.Redirect“表现得不同”?