asp .net中的UserControl无法正常工作?

时间:2013-11-23 08:14:02

标签: c# asp.net .net web-controls

我在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" %>

4 个答案:

答案 0 :(得分:1)

我会在您的母版页中添加一个表单,这可能是您错误的原因。

我还会从用户控件和页面中删除所有其他表单服务器控件。

尝试以下步骤:

  1. 转到Light.master母版页文件并确保其位于某处<form id="form1" runat="server">和结束标记,ID可能不同。
  2. 转到以下文件AssignmentTab.ascxAdministrationPage.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" />