我有一种感觉,我错过了一件小事。我有一个非常简单的页面,是从VS2010中的ASP.NET模板创建的。我的Default.aspx只包含以下代码。 Site.Master页面正在按照预期进行操作。
<%@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>
两个对象中的代码隐藏文件都是空的,并从UserControl
继承。行为与Control
继承的行为相同。当我在渲染输出上查看源代码时,除了一些换行符之外,不输出HelloBanners。 HERE BE DRAGONS评论是可见的,这表明母版页和所有工作正常。我期待在输出中看到<h1>HI!</h1>
标记。我错过了什么?这看起来非常基本。
答案 0 :(得分:4)
看起来你指的是空代码隐藏类而不是带输出的ASCX文件。使用src
指令中的@Register
属性:
<%@Register
TagPrefix="tsi"
TagName="BigHelloBanner"
Src="BigHelloBanner.ascx" %>
答案 1 :(得分:2)
我在这里看不到src属性你的控件在哪里?
<%@Register
TagPrefix="tsi"
Namespace="UserControlTest.Controls"
Assembly="UserControlTest"
src="?" %>
答案 2 :(得分:2)
由于BigHelloBanner是一个Web用户控件,您应该尝试这样注册:
<%@Register TagPrefix="tsi" TagName="BigHelloBanner" Src="~/pathToUserControls/BigHelloBanner.ascx" %>
答案 3 :(得分:0)
您是否还需要为每个控件实例提供ID?