【发布时间】:2014-06-26 06:06:48
【问题描述】:
在下面的编码中,这里我向您展示了我的母版页和菜单用户控件(添加到母版页的菜单用户控件)。在这里它显示了错误,
当我将用户控件包裹在 runat="server" 周围时产生错误
一个页面只能有一个服务器端表单标签。
我的主页
<head runat="server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<uc1:Menu runat="server" ID="Menu" />
<div>
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</body>
我的用户控件
<form id="text" runat="server">
<asp:LinkButton ID="link_logout" Text="Logout" OnClick="link_logout_Click" runat="server" />
</form>
<%} %>
【问题讨论】:
-
这是因为一个页面只能有一个服务器端的Form标签。您有 2 个,因为 ASP.NET 在呈现母版页时添加了一个。所以你的用户控件AFAIK中不能有表单标签
-
显然你可以有多个表单标签,但有黑客...stackoverflow.com/questions/7544454/…
-
@geedubb 当我从用户控件中删除 runat="server" 时,它会显示此错误 >> 必须将类型为“LinkButton”的控件“Menu_link_logout”放在带有 runat=server 的表单标记内。
-
你能检查你的帖子,因为它最后有
<%} %>- 这是故意的吗? -
@geedubb 是 serversideone 从客户端使用