Избавьтесь от атрибута пространства имен, поскольку ASP.NET сбивает с толку то, пытаетесь ли вы зарегистрировать пользовательский элемент управления или пользовательский элемент управления.
Контроль пользователя:
<add tagPrefix="SomeTagPrefix" src="~/Controls/SomeControl.ascx" tagName="SomeTagName"/>
Пользовательский контроль:
<add tagPrefix="SomeTagPrefix" namespace="SomeNamespace" assembly="SomeAssembly"/>
Итак, в вашем примере:
<add tagPrefix="IPAMControl" tagName="track" src="~/controls/track.ascx" />
А на ASPX / ASCX вы используете его так:
<IPAMControl:track id="ipamTrack" runat="server" />
См. здесь для получения дополнительной информации.
EDIT
Чтобы доказать это работает - я сделал следующее:
- Создание нового веб-приложения
- Создать новую папку с именем «Controls» в корне веб-приложения
- Добавлен новый «Веб-контроль пользователя» под названием «MyUserControl.ascx»
- Модифицированный web.config для добавления регистрации элемента управления
- Изменен Default.aspx для добавления элемента управления.
И все отлично работает.
Вот пользовательский элемент управления:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="WebApplication1.Controls.MyUserControl" %>
<span>Hi, im a user control, how are you?</span>
Вот часть отредактированного файла web.config:
<pages>
<controls>
<add tagPrefix="MyControls" tagName="MyUserControl" src="~/Controls/MyUserControl.ascx"/>
</controls>
</pages>
Вот изменение Default.aspx, которое я сделал:
<MyControls:MyUserControl id="myUserControl" runat="server" />
И страница отображается правильно.
Теперь, если то, что я сделал здесь, не отличается от того, как вы пытаетесь это сделать, у вас должен быть другой код / ошибки, которые мешают этому.
Не знаю, чем еще я могу помочь.