HTML按钮调用ASP类?

时间:2016-01-26 15:35:56

标签: c# html asp.net

希望有人能够帮助我。我基本上试图使用HTML按钮调用类中的方法。这背后的原因是因为我打算让它的工作类似于登录(并且希望它在登录时保持会话),以及保持按钮的当前视觉效果。

经过研究,有些地方基本上说你可以做到,但是由于某些原因它根本不能为我工作。它说你可以做到 - HTML Button like a ASP.NET Button

这是我的代码 -

<form runat="server">
    <div class="input">
        <asp:TextBox ID="txtUser" runat="server" type="email" placeholder="Username"></asp:TextBox>
        <span><i class="fa fa-envelope-o"></i></span>
    </div>

    <div class="input">
        <asp:TextBox ID="TextBox1" runat="server" type="password" placeholder="Password"></asp:TextBox>
        <span><i class="fa fa-lock"></i></span>
    </div>
</form>
<button id="button1" runat="server" onserverclick="doIt" class="submit"><i class="fa fa-long-arrow-right"></i></button>

使用包含

的C#代码
    public partial class Login : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    protected void doIt(object sender, EventArgs e)
    {
        Response.Redirect("index.html");
    }
}

我是否以完全错误的方式解决这个问题? (重定向就在那里作为测试,直到我能够运行该方法,因为它没有运行它。)

感谢任何帮助。

以下是我的所有HTML代码:

<form class="login">
    <fieldset>
        <legend class="legend">Login</legend>
        <form runat="server">
            <div class="input">
                <asp:TextBox ID="txtUser" runat="server" type="email" placeholder="Username"></asp:TextBox>
                <span><i class="fa fa-envelope-o"></i></span>
            </div>

            <div class="input">
                <asp:TextBox ID="TextBox1" runat="server" type="password" placeholder="Password"></asp:TextBox>
                <span><i class="fa fa-lock"></i></span>
            </div>
            <button id="button1" runat="server" onserverclick="doIt" class="submit"><i class="fa fa-long-arrow-right"></i></button>
        </form>

    </fieldset>

    <div class="feedback">
        login successful <br />
        redirecting...
    </div>
</form>

1 个答案:

答案 0 :(得分:4)

您的HTML中有一个嵌套表单,这是无效的标记。删除内部表单,并将runat="server"添加到剩余的表单中。然后将button放在表单中,如下所示:

<form class="login" runat="server">
    <fieldset>
        <legend class="legend">Login</legend>
        <div class="input">
            <asp:TextBox ID="txtUser" runat="server" type="email" placeholder="Username"></asp:TextBox>
            <span><i class="fa fa-envelope-o"></i></span>
        </div>

        <div class="input">
            <asp:TextBox ID="TextBox1" runat="server" type="password" placeholder="Password"></asp:TextBox>
            <span><i class="fa fa-lock"></i></span>
        </div>
        <%-- place the button here --%>
        <button id="button1" runat="server" onserverclick="doIt" class="submit"><i class="fa fa-long-arrow-right"></i></button>
    </fieldset>

    <div class="feedback">
        login successful
        <br />
        redirecting...
    </div>
</form>

每个网络表单 - .aspx - 应包含一个表单,并且必须包含runat="server"才能管理.cs文件。所有服务器端元素 - 包含runat="server"的元素(例如<button>)必须包含在其中,以便后面的代码可以指向它。如果您不这样做, 应该收到Invalid postback or callback argument例外黄色死亡屏幕。