ASP.NET按钮未在Bootstrap 3模式中触发

时间:2014-08-16 18:42:34

标签: asp.net twitter-bootstrap-3 bootstrap-modal

尝试在Bootstrap 3 Modal中创建登录表单,但登录按钮不会进行任何回发。 最奇怪的是我之前在相似的情况下使用过Bootstrap Modal没有问题。

这是我的代码:

<div id="modalLogin" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
        <div class="modal-content">

            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">Login</h4>
            </div>


            <div class="modal-body">

                <div class="form-horizontal">

                    <div class="form-group">
                        <label for="tbLoginEmail" class="col-sm-2 control-label">Email</label>
                        <div class="col-sm-9">
                            <asp:TextBox ID="tbLoginEmail" TextMode="Email" CssClass="form-control" runat="server" placeholder="Email" />
                        </div>
                        <div class="col-sm-1 error-message">
                            <asp:RequiredFieldValidator ID="rfvLoginEmail" ErrorMessage="*" ControlToValidate="tbLoginEmail" runat="server" Display="Dynamic" />
                        </div>
                    </div>

                    <div class="form-group">
                        <label for="tbLoginPassword" class="col-sm-2 control-label">Password</label>
                        <div class="col-sm-9">
                            <asp:TextBox ID="tbLoginPassword" TextMode="Password" CssClass="form-control" runat="server" placeholder="Password" />
                        </div>
                        <div class="col-sm-1 error-message">
                            <asp:RequiredFieldValidator ID="rfvLoginPassword" ErrorMessage="*" ControlToValidate="tbLoginPassword" runat="server" Display="Dynamic" />
                        </div>
                    </div>
                </div>
            </div>

            <div class="modal-footer">
                <asp:Button ID="btLogin" Text="Login" CssClass="btn btn-standard" runat="server" OnClick="btLogin_Click" />
            </div>
        </div>
    </div>
</div>


<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/js/bootstrap.min.js"></script>

C#代码:

protected void btLogin_Click(object sender, EventArgs e)
{
    ///validate user credentials in membership
    if (Membership.ValidateUser(tbLoginEmail.Text, tbLoginPassword.Text))
    {
        ///login user to application
        FormsAuthentication.SetAuthCookie(tbLoginEmail.Text, true);

        ///redirect to catalog page (TODO: redirect user to profile page)
        Response.RedirectToRoute("catalog-page");
    }
    else
    {
        lbResult.Text = "error";
    }
}

我正在使用ASP.NET Web Forms 4.5,而Modal位于MasterPage中。

1 个答案:

答案 0 :(得分:0)

我发现了我的问题!我不仅在登录表单中使用验证控件,还在寄存器表单中使用验证控件。由于两个表单都在主页面中,如果其中一个表单为空,则不会提交页面中的任何按钮。 为了解决我的问题(我知道,一个新手的错误),我在每个表单中添加了一个验证组 - 登录和注册。 很抱歉给您带来不便......