也许这个问题有点太笼统了,但我会通过解释我的场景来尝试缩小范围。
我有一个登录页面,带有一个 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 “行为”不同?