Uma coisa embaraçosa é que antes do feriado do Festival da Primavera, escrevi um trecho de código que não sei por que, o ASPX pode carregar o código em ASCX.cs, mas não consigo carregar o arquivo de origem em ASCX. inativo, não consigo. Depois de resolver esse problema, voltei ao trabalho hoje e descobri que o problema foi causado pela gravação incorreta do comando @Register do ASPX.
A forma correta deve ser escrita da seguinte forma:
<%@ Register TagPrefix="myTagPrefix" TagName="ConfigNavigation" Src="/Controls/ConfigNavigation.ascx" %> Mas eu escrevi da seguinte forma:
<%@ Register TagPrefix="myTagPrefix" Namespace="MyWEB.Controls" Assembly="MyWebProject" %>Esta última forma de escrita irá carregar apenas a classe correspondente ao arquivo cs, mas não o conteúdo em ascx, aparecendo assim o problema Eu encontrei aqui.
A seguir está um resumo de várias maneiras de escrever o comando @Register, compilado com referência ao http://msdn.microsoft.com/zh-cn/library/c76dd5k1.aspx do MSDN:
<%@ Registrar tagprefix="tagprefix" namespace="namespace" assembly="assembly" %>
<%@ Registrar tagprefix="tagprefix" namespace="namespace" %>
<%@ Register tagprefix="tagprefix" tagname="tagname" src="pathname" %>Cada atributo é descrito da seguinte forma:
prefixo de tag
Um alias arbitrário que fornece uma breve referência ao namespace da tag usada no arquivo que contém a diretiva.
namespace O namespace do controle personalizado que está sendo registrado.
tagname Qualquer alias associado à classe. Esta propriedade é usada apenas para controles de usuário.
assembly O assembly que reside no namespace associado ao atributo tagprefix.
O nome do assembly não pode incluir a extensão do arquivo. Observe também que se o atributo assembly estiver faltando, o analisador ASP.NET assumirá que o código-fonte existe na pasta App_Code do aplicativo. Caso queira cadastrar o código fonte do controle na página sem compilá-lo, coloque o código fonte na pasta App_Code. O ASP.NET compila dinamicamente os arquivos de origem na pasta App_Code em tempo de execução.
A localização (relativa ou absoluta) do arquivo de controle de usuário ASP.NET declarativo associado a src e ao par tagprefix:tagname.
O valor do atributo src pode ser um caminho relativo ou absoluto do diretório raiz do aplicativo até o arquivo de origem do controle do usuário. Para facilitar o uso, é recomendado usar caminhos relativos. Por exemplo, suponha que todos os arquivos de controle de usuário do seu aplicativo estejam armazenados no subdiretório Usercontrol do diretório raiz do aplicativo. Para incluir o controle de usuário no arquivo Usercontrol1.ascx, inclua o seguinte na diretiva @Register:
Src="~usercontrolusercontrol1.ascx" O caractere til (~) representa o diretório raiz do aplicativo