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

.
Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top