首页 > 解决方案 > 在 ASPX 中为默认按钮按 Enter 不起作用,但在 IIS 6.2 上鼠标可以

问题描述

我有一个在 .NET 4.8 和 IIS 6.2 下运行的基于 ASPX 的解决方案。我们有一个登录屏幕。

当用户输入他们的用户名和密码,然后点击回车或点击回车,他们应该登录。我们遇到的问题是,如果用户点击登录按钮一切都很好,但如果他们点击回车,页面似乎刷新但不是回发。

一些历史......我们几年前在 GoDaddy 下托管时遇到了这个问题。他们在某些时候更改了一​​些 IIS 设置,这破坏了我们的应用程序并导致了这种情况。他们不会撤消此设置(他们不会告诉我什么设置)将应用于同一 IIS 上的其他人。我们搬到了一个新的主机上,现在我们自己的 IIS 在它的机器上运行。多年来我们一直没有遇到这个问题,现在它又出现了。当我通过 Visual Studio 在 IIS Express 下本地测试此代码时,我们没有遇到问题。当我发布到我们的服务器时,问题就出现了。

我正在把头发拉出来。

编辑 2020-10-09 - 添加标记

    <form id="Form1" runat="server">
        <div class="container" id="container" runat="server">
            <div class="row">
                <div class="col-md-4">
                    &nbsp;</div>
                <div class="col-md-4">
                    <p style="text-align: center;">
                        <img src="./images/logo160x300.png" />
                    </p>
                    <h2>
                        Sign In</h2>
                    <div id="errorPanel" runat="server" style="display: none;">
                        <asp:label ID="lblAuthenticationFailure" runat="server" Text="Login failed. Please check your username and password."
                            Visible="True" Font-Bold="True" ForeColor="#CC0000"></asp:label>
                        <br />
                        <br />
                    </div>
                    <label for="txtUser">
                        Email</label>
                    <asp:TextBox ID="txtUser" runat="server" placeholder="Email" type="email" class="form-control"
                        required autofocus AutoComplete="username"></asp:TextBox>
                    <br />
                    <label for="txtPassword">
                        Password</label>
                    <asp:TextBox ID="txtPassword" runat="server" TextMode="Password" placeholder="Password"
                        class="form-control" required AutoComplete="current-password"></asp:TextBox>
                    <div class="text-right small">
                        <a href="forgotpassword.aspx">Forgot your password?</a></div>
                    <br />
                    <asp:Button ID="butLogin" runat="server" Text="Sign in" type="submit" class="btn btn-lg btn-primary btn-block" />
                    <br />
                    <div class="text-center">
                        New? Need an Account?<br />
                    </div>
                    <a class="btn btn-default btn-lg btn-block" href="createlogin.aspx" role="button">Create
                        an account</a>
                    <br />
                </div>
            </div>
        </div>
    </form>

标签: asp.netbuttondefaultpostback

解决方案


您可以通过以下方式设置 PageLoad 上的默认回发按钮

Page.Form.DefaultButton = myButton;

确保您进行搜索。这可能已经回答了。


推荐阅读