Почему мои элементы управления ASP.NET веб-форм не отображаются? - PullRequest
0 голосов
/ 30 августа 2011

У меня такое чувство, что мне не хватает одной маленькой вещи. У меня очень простая страница, созданная из шаблонов ASP.NET в VS2010. Мой 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 не выводится, кроме некоторых новых строк. Комментарий ЗДЕСЬ БУДЕТ ДРАКОНОВ, который указывает мне, что главная страница и все, что работает отлично. Я ожидаю увидеть на выходе также разметку <h1>HI!</h1>. Что мне не хватает? Это кажется очень простым.

Ответы [ 4 ]

4 голосов
/ 30 августа 2011

Похоже, что вы ссылаетесь на пустой класс code-behind вместо файла ASCX с выводом. Используйте атрибут src в вашей директиве @Register:

<%@Register 
    TagPrefix="tsi" 
    TagName="BigHelloBanner" 
    Src="BigHelloBanner.ascx" %>
2 голосов
/ 30 августа 2011

Я не вижу здесь атрибута src, где находится ваш контроль?

<%@Register 
    TagPrefix="tsi" 
    Namespace="UserControlTest.Controls" 
    Assembly="UserControlTest"
    src="?" %>
2 голосов
/ 30 августа 2011

Поскольку BigHelloBanner - это пользовательский веб-элемент управления, попробуйте зарегистрировать его следующим образом:

<%@Register TagPrefix="tsi" TagName="BigHelloBanner" Src="~/pathToUserControls/BigHelloBanner.ascx" %> 
0 голосов
/ 30 августа 2011

Вам все еще не нужно давать ID каждому экземпляру управления?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...