一个页面只能有一个服务器端表单标签..但我需要2

时间:2012-06-18 13:57:12

标签: asp.net

我在页面底部有这个:

<form id="Login" method="post" runat="server">
<span class="MenutextWhite">You are logged in as 
<asp:Label ID="lblUsername" Runat="server"></asp:Label> 
- not you?&nbsp;&nbsp;</span>
<asp:LinkButton CssClass="MenutextWhite" ID="btnLogout" Runat="server" Text="Log out"
OnClick="Logout_Click" tip="click here to log out"> 
</asp:LinkButton>&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;<a href = "admin.aspx"
class="MenutextWhite">Admin</a>&nbsp;&nbsp;&nbsp;
</form> 

这涉及显示用户是谁以及访问管理部分和注销按钮。 (我没有使用主页)

然而,在主页内容区域中,我需要另一个控件(freetextbox)

我如何解决这个单一形式的问题?

3 个答案:

答案 0 :(得分:1)

您只能有一个带有服务器端标签的表单。但是你可以拥有尽可能多的html表单(没有runat=server)标签。 runat=server标记允许webforms页面生命周期并查看内容。

如果您想要更传统的Web开发体验,请不要使用webforms。而是使用mvc框架(FUBU,Monorail,MSMVC等)

答案 1 :(得分:1)

正如Jason Meckley所说 - 你做不到。但在ASP.Net表格中我从来不需要它。

您有两个按钮用于表单的两个不同部分 - 因此您将有两个不同的点击处理程序,因此可以采取两种不同的操作

protected void ptnFormPart1_Click(object sender, EventArgs e)
{
   //.. action 1
}

protected void ptnFormPart1_Click(object sender, EventArgs e)
{
   //.. action 2
}

因此,您不需要两种不同形式的两种不同动作

答案 2 :(得分:0)

解决! 我要求的2种形式是在不同的DIV中。

因为我只能有一个表格, 我把标签放在 - 所有内容之外。

现在一切正常。