ASP.NET事件在WebForms中不起作用

r1zhe5dt  于 2023-03-09  发布在  .NET
关注(0)|答案(1)|浏览(188)

我无法在WebForms中使用按钮事件。
这是我的母版页

<body>
<form runat="server">
    <header id="header">
        <div class="container">
            <div class="row">

你可以看到我有runat="server"
这是我的页面与按钮:

<div class="slide-text">
    <div class="contact-form bottom">
        <h2>Sign In</h2>
        <div class="form-group">
            <input type="text" id="Email" runat="server" name="Mail" class="form-control" required="required" placeholder="E-Mail"/>
        </div>
        <div class="form-group">
            <input type="password" id="Password" runat="server" name="Password" class="form-control" required="required" placeholder="Password"/>
        </div>
        <div class="form-group">
            <asp:hyperlink navigateurl="SignUp" runat="server" text="Registration"/>
        </div>
        <div class="form-group">
            <asp:button text="Sign In" id="SignInSubmit" cssclass="btn btn-submit" runat="server" onclick="SignInSubmit_Click"/>
        </div>
    </div>
</div>

你可以看到,我有一切必要的东西。
这是后面的代码:

protected void SignInSubmit_Click(object sender, EventArgs e)
{
    User user = new User();
    user.Auth(Email.Value, Password.Value);
    if (user.IsAuth)
    {
        Session.Add("User", user);
        Response.Redirect("Account");
    }
}

我使用了调试器,但事件就是不起作用。
但是当我这样

<form runat="server">
    <div class="slide-text">
        <div class="contact-form bottom">
            <h2>Sign In</h2>
            <div class="form-group">
                <input type="text" id="Email" runat="server" name="Mail" class="form-control" required="required" placeholder="E-Mail"/>
            </div>
            <div class="form-group">
                <input type="password" id="Password" runat="server" name="Password" class="form-control" required="required" placeholder="Password"/>
            </div>
            <div class="form-group">
                <asp:hyperlink navigateurl="SignUp" runat="server" text="Registration"/>
            </div>
            <div class="form-group">
                <asp:button text="Sign In" id="SignInSubmit" cssclass="btn btn-submit" runat="server" onclick="SignInSubmit_Click"/>
            </div>
        </div>
    </div>
</form>

它正在工作(当然我正在删除母版页中的form)。
我不明白为什么它不工作。

我没有收到异常,只是事件未触发。

此外,当我不使用母版页而将form runat放在主体之后时,我也不能使用事件。
其工作原理如下:

<form runat="server">
    <div class="slide-text">
        <div class="contact-form bottom">
            <h2>Sign In</h2>
            <div class="form-group">
                <input type="text" id="Email" runat="server" name="Mail" class="form-control" required="required" placeholder="E-Mail"/>
            </div>
            <div class="form-group">
                <input type="password" id="Password" runat="server" name="Password" class="form-control" required="required" placeholder="Password"/>
            </div>
            <div class="form-group">
                <asp:hyperlink navigateurl="SignUp" runat="server" text="Registration"/>
            </div>
            <div class="form-group">
                <asp:button text="Sign In" id="SignInSubmit" cssclass="btn btn-submit" runat="server" onclick="SignInSubmit_Click"/>
            </div>
        </div>
    </div>
</form>

希望你能帮我。先谢了。

uqzxnwby

uqzxnwby1#

当你创建网页表单时,确保你选中了使用已经包含表单的母版页的复选框。
在Webform.aspx上不需要另一个窗体,它已经由母版页提供了。

相关问题