asp.net - mvc - El registro de controles personalizados falla
maestro detalle asp net mvc 5 (1)
Deshágase del atributo del espacio de nombres, ya que confunde a ASP.NET con si está intentando registrar un Control de usuario o un Control personalizado.
Control de usuario:
<add tagPrefix="SomeTagPrefix" src="~/Controls/SomeControl.ascx" tagName="SomeTagName"/>
Control personalizado:
<add tagPrefix="SomeTagPrefix" namespace="SomeNamespace" assembly="SomeAssembly"/>
Entonces, en tu ejemplo:
<add tagPrefix="IPAMControl" tagName="track" src="~/controls/track.ascx" />
Y en ASPX / ASCX, lo usa así:
<IPAMControl:track id="ipamTrack" runat="server" />
Mira aquí para más información.
EDITAR
Para probar que esto funciona, hice lo siguiente:
- Crear nueva aplicación web
- Crear una nueva carpeta llamada "Controles" en la raíz de la aplicación web
- Se agregó un nuevo "Control de usuario web" llamado "MyUserControl.ascx"
- Modificado web.config para agregar registro de control
- Modificado Default.aspx para agregar el control.
Y todo funciona bien
Aquí está el Control de usuario:
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs" Inherits="WebApplication1.Controls.MyUserControl" %>
<span>Hi, im a user control, how are you?</span>
Aquí está la porción de la web.config editada:
<pages>
<controls>
<add tagPrefix="MyControls" tagName="MyUserControl" src="~/Controls/MyUserControl.ascx"/>
</controls>
</pages>
Aquí está el cambio Default.aspx que hice:
<MyControls:MyUserControl id="myUserControl" runat="server" />
Y la página procesada correctamente.
Ahora, a menos que lo que he hecho aquí sea diferente a cómo lo has intentado, debes tener otros códigos / errores que interfieran con esto.
No sé cuánto más puedo ayudar.
Estoy intentando registrar mis controles de usuario dentro del archivo webconfig porque recibo el error Elemento no existe, pero recibo el siguiente error cuando intento registrarlos en webconfig:
Invalid or missing attributes found in the tagPrefix entry. For user control, you must also specify ''tagName'' and ''src''. For custom control, you must also specify ''namespace'', and optionally ''assembly''
El siguiente es el código dentro del archivo webconfig:
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="asp" namespace="System.Web.UI.WebControls" assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<add tagPrefix="IPAMControl" tagName="contact_us" namespace="IPAM.Website.Controls" src="~/controls/contact_us.ascx" />
<add tagPrefix="IPAMControl" tagName="erh_list" namespace="IPAM.Website.Controls" src="~/controls/erh_list.ascx" />
<add tagPrefix="IPAMControl" tagName="header" namespace="IPAM.Website.Controls" src="~/controls/header.ascx" />
<add tagPrefix="IPAMControl" tagName="footer" namespace="IPAM.Website.Controls" src="~/controls/footer.ascx" />
<add tagPrefix="IPAMControl" tagName="main_tnavbar" namespace="IPAM.Website.Controls" src="~/controls/main_tnavbar.ascx" />
<add tagPrefix="IPAMControl" tagName="program_header" namespace="IPAM.Website.Controls" src="~/controls/program_header.ascx" />
<add tagPrefix="IPAMControl" tagName="program_list" namespace="IPAM.Website.Controls" src="~/controls/program_list.ascx" />
<add tagPrefix="IPAMControl" tagName="signup_section" namespace="IPAM.Website.Controls" src="~/controls/signup_section.ascx" />
<add tagPrefix="IPAMControl" tagName="speaker_list" namespace="IPAM.Website.Controls" src="~/controls/speaker_list.ascx" />
<add tagPrefix="IPAMControl" tagName="track" namespace="IPAM.Website.Controls" src="~/controls/track.ascx" />
</controls>
</pages>
Las páginas que tienen este problema también hacen referencia a MasterPages si eso es importante:
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/programs/MasterProgram.master" CodeBehind="~/programs/wim2011/default.aspx" Inherits="IPAM.Website.programs.wim2011._default" %>
y están cada uno dentro de sus propias carpetas.
Por favor ayuda.