none
Alteração na MasterPage não reflete nas páginas filhas no Browser RRS feed

  • Pergunta

  • Olá pessoal,

    Estou desenvolvendo meu primeiro sistema web. Estou utilizando MasterPage já que o sistema utiliza várias telas iguais, muda apenas o conteúdo. Quando faço uma alteração na masterpage, em modo de projeto dentro do visual studio 2010, as páginas filhas são atualizadas, porém quando executo no browser, as alterações feitas na masterpage não são refletidas nas páginas filhas. Estou utilizando CSS.

    Alguma dica de como resolver isso?

    Estrutura de pastas dentro da raiz.

    Style = arquivos css

    MasterPages = Páginas masterspages

    Forms = Páginas filhas derivadas das masterpages

    segunda-feira, 16 de abril de 2012 13:15

Respostas

  • Ricardo value pela dica.

    Acabei descobrindo o problema. No meu arquivos .CSS eu havia colocado:

     font:24px #FFFFFF;

    No Visual Studio o Design reconheceu, mas nos browsers não. Mudei para:

    font-size:24px;
    color:#FFFFFF;

    Marinheiro de primeira viagem. Obrigado a todos

    • Marcado como Resposta Reuber terça-feira, 17 de abril de 2012 12:23
    terça-feira, 17 de abril de 2012 12:23

Todas as Respostas

  • Reuber, bom dia. Poste o código HTML de uma das páginas.

    Atenciosamente,
    Onofre A. Juvencio Junior
    (Se achou útil o post, por favor, marque-o como resposta)
    segunda-feira, 16 de abril de 2012 13:40
  • Olá Onofre

    Segue código da página filha;

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPages/Principal.Master" AutoEventWireup="true" CodeBehind="Principal.aspx.cs" Inherits="Lawyer.Web.Forms.Principal" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
        <p>
        Colocando texto de exemplo </p>
        <p>
            &nbsp;</p>
        <p>
            &nbsp;</p>
    </asp:Content>
    

    segue código da MasterPage

    <%@ Master Language="C#" AutoEventWireup="true" CodeBehind="principal.master.cs"
        Inherits="Lawyer.Web.Forms.principal" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <link href="../Styles/principal.css" rel="stylesheet" type="text/css" />
    <head runat="server">
        <title></title>
        <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
    </head>
    <body>
        <form id="form1" runat="server">
        <div id="box">
            <div id="topologo">
                logo
            </div>
            <div id="topo">
                Sistema Integrado de Controle de Processos
            </div>
            <div id="topomenu">
                Menu do sistema
       
    	</div>
    
            <div id="conteudo">
                <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
                </asp:ContentPlaceHolder>
            </div>
            <div id="clear">
            </div>
            <div id="rodape">
                texto de conteúdo do rodape
            </div>
        </div>
        Copyright 2012 - empresa teste - Todos os direitos reservados
        </form>
    </body>
    </html>
    

    Arquivo css

    body{background:#999999;
    	 margin:2px;
    	 padding:10px;
    	 font-family:Arial, Verdana, Tahoma;
    	 font-weight:bold;
    	 text-align:center;
    	 background-image:url(fundo1.jpg);
    	 background-repeat:repeat-x;
    	 font-size:10px;
    	 color:#FFFFFF}
    	 
    #box{width:900px;
    	 border:1px solid #FFFFFF;
    	 background:#FFFFFF;
    	 color:#000000;
    	 font-weight:normal;
    	 font-size:10px;
    	 padding:8px;
    	 text-align:left;
    	 margin:0 auto;}
    #topologo{height:80px;
    	  width:100px;
    	  border:1px solid #FFFFFF;
    	  text-align:center;
    	  background:#279B61;
    	  float:left;
    	  color:#FFFFFF;
    	  padding:5px;}
    #topo{height:80px;
    	  border:1px solid #FFFFFF;
    	  text-align:center;
    	  font:24px #FFFFFF;
    	  padding-top:40px;
    	  background:#279B61;
    	  color:#FFFFFF;
    	  padding:5px;}
    #topomenu{height:30px;
    	  border:1px solid #FFFFFF;
    	  text-align:justify;
    	  background:#000010;
    	  color:#FFFFFF;
    	  padding:5px;}	  
    #conteudo{/*width:695px;*/
          height:450px;
    	  border:1px solid #000000;
    	  text-align:justify;
    	  background-image:url(..\images\Fav3.gif);
    	  background-repeat: no-repeat;
    	  background-position:center;
    	  /*background:#3F5D7D;*/
    	  color:#FFFFFF;
    	  /*float:right;*/
    	  padding:5px;}
    	  
    #rodape{height:30px;
    	  border:1px solid #FFFFFF;
    	  text-align:justify;
    	  background:#95CAE4;
    	  color:#FFFFFF;
    	  padding:5px;}
    	  
    #clear{clear:both;}	  

    segunda-feira, 16 de abril de 2012 14:11

  • Segue algumas considerações:

    Colocar o link css dentro da tag head:

    <head runat="server">
        <title></title>
    	<link href="../Styles/principal.css" rel="stylesheet" type="text/css" />
    </head>

    Refrenciar o link com: ~

    <link href="~/Styles/principal.css" rel="stylesheet" type="text/css" />

    Certificar-se de que o caminho e nome do css estão ok.

    Finalmente coloque o css na raiz e faça a referencia direta, só para comporvar que esta funcionando.

    Tive um problema parecido com este é era porque a página estava em cache no IExplorer 9. Então limpei e configurei o cache e resolveu.


    Ninguém falou que seria fácil!

    segunda-feira, 16 de abril de 2012 14:30
  • Fiz as recomendações sugeridas, porém não resolveu.

    Coloquei todos os arquivos na raiz, limpei o cache de todos os navegadores e mesmo assim as alterações não refletem nas páginas filhas. E olha que eu só havia alterado o tamanho da fonte no arquivo css.

    segunda-feira, 16 de abril de 2012 14:41
  • Só confirmando:

    Vc referenciou o css que esta na raiz dentro da tag head da seguinte forma?

    <head runat="server">
        <title></title>
    	<link href="principal.css" rel="stylesheet" type="text/css" />
    </head>

    Vc esta rodando o site viaF5 ou publicou o site?

    O erro ocorre em todos os browsers?

    Outras considerações:

    Renomei o css que vc este utilizando e verifque se vai afetar a página!

    Crie na raiz outro css bem simples e faça referência a ele e teste se vai funcionar!

    No post http://social.msdn.microsoft.com/Forums/pt-BR/aspnetpt/thread/f115483d-b727-4830-82ed-577dbbc98b81

    existe a seguinte sugestão:

    <link type="text/css" rel="stylesheet" 
        href='<%= Server.ResolveClientUrl("~/common/css/global.css") %>' />


    Ninguém falou que seria fácil!

    segunda-feira, 16 de abril de 2012 15:44
  • Boa Tarde,

    Como o amigo jothaz falou, certifique-se que o CSS está sendo "lincado" dentro do Head, só assim para os Browsers reconhecerem e outra dica, no seu CSS procure sempre zerar as bordas, paddings e margins, assim evita problemas entre os navegadores. Segue exemplo:

    /*Inserir no seu arquivo principal.css da master*/
    *{border:none;margin:0;padding:0;}
    html,body,form{width:100%;height:100%;}

    Isso garante que a visualização nos diversos browsers, seja a mesma, pq cada um lida com bordas, margins e paddings de maneira diferente.

    Espero ter ajudado.

    Abcs

    segunda-feira, 16 de abril de 2012 16:22
  • Ricardo value pela dica.

    Acabei descobrindo o problema. No meu arquivos .CSS eu havia colocado:

     font:24px #FFFFFF;

    No Visual Studio o Design reconheceu, mas nos browsers não. Mudei para:

    font-size:24px;
    color:#FFFFFF;

    Marinheiro de primeira viagem. Obrigado a todos

    • Marcado como Resposta Reuber terça-feira, 17 de abril de 2012 12:23
    terça-feira, 17 de abril de 2012 12:23