C# 为什么我的ASP.NET webforms控件不呈现?
我觉得我错过了一件小事。我有一个非常简单的页面,它是从VS2010中的ASP.NET模板创建的。My Default.aspx仅由以下代码组成。母版页正在做它应该做的事情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=
<%@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,它似乎会自动生成。