ASP.NET Web Pages - Layout de página

Com as Web Pages, é fácil criar sites com layout consistente.

Visual consistente

Na Internet, você encontrará muitos sites com um visual uniforme:

  • Cada página tem o mesmo cabeçalho
  • Cada página tem o mesmo rodapé
  • Cada página tem o mesmo estilo e layout

Através das Web Pages, é possível implementar isso de forma eficiente. Você pode obter blocos de código reutilizáveis (bloco de conteúdo), como cabeçalhos e rodapés, em arquivos independentes.

Você também pode definir um layout consistente para todas as páginas usando modelos de layout (arquivos de layout).

Bloco de conteúdo

Muitos sites têm conteúdo que precisa ser exibido em cada página (como cabeçalhos e rodapés).

Através das Web Pages, você pode usar @RenderPage() Métodos para importar conteúdo de diferentes arquivos.

Bloco de conteúdo (de outro arquivo) pode ser inserido em qualquer lugar da página e pode conter texto, tags e código, como qualquer página comum da web.

Usar cabeçalhos e rodapés genéricos poupa muito trabalho. Você não precisa escrever o mesmo conteúdo em cada página e, quando você mudar os arquivos de cabeçalho ou rodapé, o conteúdo será atualizado em todas as páginas.

Assim é como ele se parece no código:

Exemplo

<html>
<body>
@RenderPage("header.cshtml")
<h1>Hello Web Pages</h1> 
<p>Este é um parágrafo</p>
@RenderPage("footer.cshtml")
</body>
</html>

Executar Exemplo

Usando páginas de layout

No conteúdo anterior, você já viu que referenciar o mesmo conteúdo em várias páginas é muito simples.

Outra maneira de criar uma aparência consistente é usar páginas de layout. As páginas de layout contêm a estrutura da página, não o conteúdo. Quando uma página da web (página de conteúdo) é linkada a uma página de layout, ela é exibida conforme o layout (modelo).

As páginas de layout são semelhantes às páginas comuns da web, mas chamam o conteúdo das páginas ao invés de exibi-lo. @RenderBody() Método.

Cada página de conteúdo deve começar com Instrução de LayoutInício.

Assim é como ele se parece no código:

Disponível no layout da página:

<html>
<body>
<p>Este é o texto.</p>
@RenderBody()
<p>© 2012 CodeW3C.com. Todos os direitos reservados.</p>
</body>
</html>

Qualquer Página:

@{Layout="Layout.cshtml";}
<h1>Bem-vindo ao CodeW3C.com</h1>
<p>
Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto.
Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto.
Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto. Este é o texto.
</p>

Executar Exemplo

Não Se Repetir

Através de duas ferramentas ASP.NET, os blocos de conteúdo e as páginas de layout, você pode definir um visual consistente para a aplicação web.

Essas ferramentas economizarão muita trabalho, pois você não precisará repetir a mesma informação em todas as páginas. Centralize tags, estilos e código, tornando a aplicação web mais fácil de gerenciar e manter.

Prevenir Divulgação de Código

No ASP.NET, os arquivos cujos nomes começam com underline não podem ser navegados via web.

Se você deseja proibir que os usuários vejam os blocos de conteúdo ou arquivos de layout, renomeie os arquivos:

  • _header.cshtm
  • _footer.cshtml
  • _Layout.cshtml

Ocultar Informações Sensíveis

No ASP.NET, uma prática comum para ocultar informações sensíveis (senhas de banco de dados, senhas de e-mail, etc.) é armazenar essas informações em um arquivo independente chamado "_AppStart".

_AppStart.cshtml

@{
WebMail.SmtpServer = "mailserver.exemplo.com";
WebMail.EnableSsl = true;
WebMail.UserName = "nome-de-usuario@exemplo.com";
WebMail.Password = "sua-senha";
WebMail.From = "seu-nome-aqui@exemplo.com";
}