我在asp.net和一个webform中创建了两个用户控件。现在我希望这两个用户控件在webform中以表单形式显示,但它表示there must be one head with runat="server"
这是我使用UserControl的webform!
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Light.master" CodeBehind="AdministrationPage.aspx.cs" Inherits="DXApplication5.AdministrationPage" %>
<%@ Register src="~/AdminPage/AssignmentTab.ascx" tagname="AssignmentUC" tagprefix="uc1" %>
<asp:Content ID="MainContent" ContentPlaceHolderID="MainContent" runat="server">
<table border="0">
<tr>
<td>
<div class="accountHeader">
<uc1:AssignmentUC ID="CalendarUserControl1" runat="server" />
</div>
</td>
</tr>
</table>
</asp:Content>
这是下面的UserControl:
<%@ Control Language="C#" ClassName="AssignmentUC" AutoEventWireup="true" CodeBehind="AssignmentTab.ascx.cs" Inherits="DXApplication5.AdminPage.AssignmentTab" %>
答案 0 :(得分:1)
我会在您的母版页中添加一个表单,这可能是您错误的原因。
我还会从用户控件和页面中删除所有其他表单服务器控件。
尝试以下步骤:
Light.master
母版页文件并确保其位于某处<form id="form1" runat="server">
和结束标记,ID可能不同。AssignmentTab.ascx
和AdministrationPage.aspx
并删除所有<form id="form1" runat="server">
和结束标记</form>
答案 1 :(得分:0)
检查用户控制代码是否包含head元素。还要检查所有依赖项以查看其中是否存在头元素。
答案 2 :(得分:0)
我认为您在页面和用户控件中都使用了<form id="formID" runat="server">
只需从用户控制表格标记中删除runat="server"
。
答案 3 :(得分:0)
确保您的用户控制 cs 文件中有:
public partial class WebUserControl1 : System.Web.UI.UserControl
在 ascx 中:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="WebUserControl1.ascx.cs" Inherits="WebUserControl1" %>
在 aspx 父级中:
<%@ Register Src="WebUserControl1.ascx" TagPrefix="uc" TagName="WebUserControl1 " %>
<uc:WebUserControl1 runat="server" ID="mycontrol" />