Erros do compilador na página mestra
-
07-07-2019 - |
Pergunta
Alguém tem conselhos sobre movendo uma página mestra de uma solução / aplicação para outra?
Eu copiei uma página mestra de uma solução existente para um novo.
A solução original constrói e funciona muito bem.
Na nova solução da página faz com que erros de compilação
Estes são principalmente 'variável' não declarado.
Eu tenho comentado todo o código do servidor para a página, exceto para 2 declarações muito simples.
declaração 1 faz referência a um controle que está na página original marcação
pgLoginView.EnableViewState = True
2 Demonstração referências um controlo que foi recentemente adicionado para fins de teste
lblFrogs.Text = "sdfgsd"
É como se o compilador não tem conhecimento dos membros da classe que devem ser gerados a partir da marcação. atributo Fui verificar 'Inherits' os arquivos de marcação está definido correctamente. Quando invoco intellisense no editor de código, ambos os objetos (lblFrogs e pgLoginView) são listados e na lista por sua vez, suas propriedades e métodos corretamente após pressionar ''
Qualquer ajuda ou idéias relativas a este problema será muito apreciada. Estou no final da minha sagacidade - era uma curta viagem
.Solução 4
Eu finalmente encontrei a fonte da minha desgraça com o objeto de perfil.
Em primeiro lugar, a funcionalidade de perfil só está disponível no projeto tipo web site. Entretanto, desde que o projeto já havia sido convertido para o tipo de web site para resolver o primeiro problema com referência a elementos da página, então por que o objeto perfil não becom disponíveis?
A resposta é que a conversão não modifica a marcação da página. A localização do código por trás precisa ser especificado com "CodeFile", eo atributo Inherits deve ter a informação que leve namespace cortado fora. Exemplo:
Outras dicas
Você deve verificar o código do designer gerado para você página mestra - embora o aspx / .master página é usada em tempo de execução para criar instâncias de todos os controles em sua página, em tempo de compilação de todas as informações sobre o que os controles estão presentes na marcação está contida na classe parcial no arquivo .designer.master:
public partial class Site1
{
/// <summary>
/// ContentPlaceHolder1 control.
/// </summary>
/// <remarks> Auto-generated field.</remarks>
protected global::System.Web.UI.WebControls.ContentPlaceHolder ContentPlaceHolder1;
// Etc...
}
Não Se essa página contém conter o código corretamente gerado, então eu não tenho certeza do que para sugerir que não brincar com ele, ou se você receber declarar realmente preso os controles você mesmo - eu tive este problema antes mas eu não sei muito sobre a forma como o código do designer é gerada.
Se isso não é o porblem então você tem certeza que has not visual studio decidiu mudar o nome qualquer um dos controles?
christian-hayter parecia estar no caminho certo. Eu converti o projeto para um projeto web site e o problema foi embora.
Parece que a causa raiz pode permanecer um mistério.
Algo tem berserk ido definitivamente com a compilação para esta página.
Eu sou incapaz de fazer referência a propriedade de perfil. Este href="http://www.vsj.co.uk/articles/display.asp?id=572" rel="nofollow artigo de Dino Esposito Diz que o objeto de perfil é adicionado à página, como parte do processo de compilação assim:
Perfil ProfileCommon protegido { obter { retorno ((ProfileCommon) (Context.Profile)); }}
Quando eu faço um achado nos arquivos para ProfileCommon em um projeto de trabalho, eu recebo muitos resultados a partir dos arquivos temporários do ASP.NET. No projeto quebrado, ProfileCommon não ocorre em qualquer um dos arquivos.