Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么我的ASP.NET webforms控件不呈现?_C#_Asp.net_Webforms - Fatal编程技术网

C# 为什么我的ASP.NET webforms控件不呈现?

C# 为什么我的ASP.NET webforms控件不呈现?,c#,asp.net,webforms,C#,Asp.net,Webforms,我觉得我错过了一件小事。我有一个非常简单的页面,它是从VS2010中的ASP.NET模板创建的。My Default.aspx仅由以下代码组成。母版页正在做它应该做的事情 <%@Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits=

我觉得我错过了一件小事。我有一个非常简单的页面,它是从VS2010中的ASP.NET模板创建的。My Default.aspx仅由以下代码组成。母版页正在做它应该做的事情

<%@Page 
    Title="Home Page" 
    Language="C#" 
    MasterPageFile="~/Site.master" 
    AutoEventWireup="true"
    CodeBehind="Default.aspx.cs" 
    Inherits="UserControlTest._Default" %>

<%@Register 
    TagPrefix="tsi" 
    Namespace="UserControlTest.Controls" 
    Assembly="UserControlTest" %>

<asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"></asp:Content>

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">

    <!-- HERE BE DRAGONS -->
    <tsi:BigHelloBanner   runat="server" />
    <tsi:SmallHelloBanner runat="server" />

</asp:Content>

BigHelloBanner包含以下内容:

<%@Control 
    Language="C#" 
    AutoEventWireup="true" 
    Visible="true"
    CodeBehind="BigHelloBanner.ascx.cs" 
    Inherits="UserControlTest.Controls.BigHelloBanner" %>

<h1>HI!</h1>

你好

这两个对象中的codebehind文件都是空的,并且从
UserControl
继承。该行为与从
控件继承的行为相同。当我在渲染输出上查看source时,除了一些换行符外,HelloBanners中的任何内容都不会输出。ThehereBeDragons的评论是可见的,这向我表明母版页和所有工作正常。我期待看到
标记。我错过了什么?这看起来很基本。

您是否仍然需要为每个控件实例提供一个ID


我在这里看不到src属性,您的控件在哪里

<%@Register 
    TagPrefix="tsi" 
    Namespace="UserControlTest.Controls" 
    Assembly="UserControlTest"
    src="?" %>

由于BigHelloBanner是一个web用户控件,您应该尝试按如下方式注册它:

<%@Register TagPrefix="tsi" TagName="BigHelloBanner" Src="~/pathToUserControls/BigHelloBanner.ascx" %> 

看起来您引用的是空代码隐藏类,而不是带有输出的ASCX文件。在
@Register
指令中使用
src
属性:

<%@Register 
    TagPrefix="tsi" 
    TagName="BigHelloBanner" 
    Src="BigHelloBanner.ascx" %>


这回答了我的主要问题,但我认为这将引起关于如何在运行时更改控件的后续讨论。我来看看有什么我不明白的。如果我不手动添加一个ID,它似乎会自动生成。