希望有人能够帮助我。我基本上是在尝试使用 HTML 按钮调用类中的方法。这背后的原因是因为我打算让它像登录一样工作(并希望它在登录时保持 session ),并保持按钮的当前视觉效果。
经过研究,有些地方基本上说你可以做到,但是由于某种原因它对我不起作用。它说你可以做到的地方-
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>
最佳答案
您的 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>
每个 web 表单 -
.aspx
- 应该包含一个表单,并且必须包含 runat="server"
以便管理 .cs
文件。所有服务器端元素 - 具有 runat="server"
的元素,例如您的 <button>
必须包含在其中,以便后面的代码能够指向它。如果不这样做,您应该收到 Invalid postback or callback argument
异常蓝屏死机。关于c# - HTML 按钮调用 ASP 类?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35017676/