【问题标题】:user control not rendering content of ascx用户控件不呈现 ascx 的内容
【发布时间】:2018-06-06 20:23:08
【问题描述】:

我认为这是一个简单的问题,直到我开始寻找答案并意识到它是如此简单,我是唯一拥有它的人

我的用户控件没有显示任何内容。我究竟做错了什么? (除了让这成为我的生活......)

控制:

<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="ctrl.ascx.cs" Inherits="proj.UserControls.ctrl" %>

asdjkldasfjasdfljdfasjklasdfjkl

使用:

<%@ Page Title="" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="page.aspx.cs" Inherits="proj.Admin.page" %>

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
        <cc1:ctrl ID="test" runat="server" />
</asp:Content>

【问题讨论】:

  • 怎么了?完全没有输出?空输出(我的意思是所有的包装元素都在那里,但里面没有文本)?

标签: c# user-controls


【解决方案1】:

更改:-

<%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>

<%@ Register TagPrefix="cc1" TagName="ctrl" Src="/path/to/ctrl.ascx" %>

您缺少TagName,它表示控件声明中冒号后面的文本。您也没有告诉引擎在哪里可以找到源文件(Src 属性)。更改 /path/to 以表示从根目录到您的控件的路径。

【讨论】:

  • 谢谢。就是这样。没有来源。原来另一种解决方案是把 ascx 页面从解决方案资源管理器拖到设计模式的页面,让 vs 重写声明。如果我对让 vs 编写代码不是那么偏执,我可能会更早尝试,但前几天我使用的是 vs 2003,但我仍然感到不寒而栗......
【解决方案2】:

如果您创建了自定义控件,那么您应该添加自定义控件的 dll 引用(从 Visual Studio 的工具箱中选择项目)。然后在页面中使用以下标签:

&lt;%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %&gt;

如果您创建了用户控件,则在您的页面中添加以下行:

&lt;%@ Register src="~/UserControls/ctrl.ascx" TagName="ctrl" tagprefix="cc1" %&gt;

【讨论】:

    【解决方案3】:

    而不是

    <%@ Register assembly="proj" namespace="proj.UserControls" tagprefix="cc1" %>
    

    使用

     <%@ Register  src="~/UserControls/ctrl.ascx"  TagName="ctrl" tagprefix="cc1" %>
    

    【讨论】:

      【解决方案4】:

      确保您没有在包含您的控件的面板或 div 上设置 visible="false"。

      那会为我节省一个小时。

      【讨论】:

        【解决方案5】:

        我不得不向已经包含很多控件的现有项目添加一个新的用户控件,并且想知道为什么我的控件没有呈现。原来你也可以在Web.config中指定这个,在configurationsystem.webpages下,像这样:

        <controls>
            <add tagPrefix="cc1" tagName="ctrl" src="~/UserControls/ctrl.ascx" />
        

        ...它将为整个项目注册控件,因此您不必在每个页面上都指定它。对于大量重复使用的控件很有用。

        【讨论】:

          猜你喜欢
          • 2013-01-16
          • 2012-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多