O que é o formato de ficheiro CSHTML?
Um arquivo .cshtml é um modelo web do lado do servidor ASP.NET Razor que combina código C# e marcação HTML em um único arquivo de origem. O formato foi introduzido em janeiro de 2011 com o ASP.NET MVC 3 como parte do mecanismo de visualização Razor da Microsoft.
O caractere @ é o marcador sintático central: onde quer que ele apareça, o analisador Razor alterna do modo de renderização HTML para o modo de execução C#. Uma view pode incluir declarações @model, importações de namespace @using, blocos @functions, tag helpers, HTML helpers e slots @section para uma página _Layout.cshtml compartilhada. O mecanismo Razor compila o arquivo no lado do servidor para C# e, em seguida, para a linguagem intermediária (IL) do .NET; apenas o HTML renderizado é enviado ao navegador - a origem .cshtml nunca é exposta aos clientes.
O prefixo cs distingue esses arquivos das views Razor .vbhtml que usam Visual Basic em vez de C#. O ASP.NET Core 2.0 introduziu as Razor Pages, que também usam .cshtml, mas adicionam uma diretiva @page no topo, fazendo com que o arquivo atue como seu próprio controlador e view autocontidos. Para padrões de aplicativos de página única (SPA), os componentes Blazor usam a extensão .razor e substituem amplamente o .cshtml em novos projetos ASP.NET Core.
Arquivos .cshtml são editados no Visual Studio ou Visual Studio Code com o C# Dev Kit. Abrir um diretamente em um navegador exibe o código-fonte bruto em vez do HTML renderizado.
Segurança e proteção
RISCO: LOWO .cshtml é um arquivo de origem em texto simples - abri-lo em um editor de texto ou IDE é inofensivo. Os servidores devem ser configurados para bloquear o acesso HTTP direto aos arquivos .cshtml (o IIS e o Kestrel fazem isso por padrão). Um servidor mal configurado que serve .cshtml como texto bruto pode vazar a lógica do aplicativo e strings de conexão - um risco de segurança para o operador do servidor, não para a pessoa que lê o arquivo localmente.
Detalhes do formato
em resumoProgramas que abrem arquivos CSHTML
Detalhes técnicos
especificação profunda| Codificação | Texto UTF-8 (padrão no Visual Studio; outras codificações suportadas) |
| Contêiner | Texto simples - código C# e marcação HTML intercalados; sem invólucro binário |
| Tipo MIME | text/html (saída renderizada para o navegador); text/plain para o arquivo de origem em editores |
| Marcador de sintaxe Razor | O caractere @ alterna do modo de renderização HTML para o modo de execução C# |
| Compilação | Compilado no lado do servidor pelo mecanismo Razor para C# e depois para .NET IL; o arquivo de origem nunca é entregue ao navegador |
| Diretivas principais | @model, @using, @functions, @section, @page (Razor Pages), @inject |
| Versão da sintaxe Razor | v1 (MVC 3, 2011) → v2 (MVC 4) → v3 (MVC 5/Core 1) → Razor 8 (ASP.NET Core 8, 2023) |
| Tag helpers | Suportado a partir do ASP.NET Core 1.0; substitui os HTML helpers para geração de atributos renderizados no servidor |
| Sistema de layout | _Layout.cshtml define o visual compartilhado da página; as views usam blocos @section para injetar conteúdo |
| SO associado | Windows (IIS/IIS Express), Linux e macOS (Kestrel, Docker) |
| Variante Razor Pages | A diretiva @page torna um arquivo .cshtml um controlador+view autocontido (ASP.NET Core 2.0+) |
| Exposição ao cliente | O arquivo de origem nunca é servido ao navegador; o acesso direto retorna texto bruto ou um erro HTTP |
| Contraparte VB | .vbhtml (sintaxe Razor idêntica usando Visual Basic em vez de C#) |
| Padrão sucessor moderno | .razor (componentes Blazor) para aplicativos estilo SPA no ASP.NET Core |
| Lançado | 2011 (ASP.NET MVC 3 / Razor syntax v1) |
| Versão mais recente | Razor 8 (ASP.NET Core 8.0, November 2023) |
| Especificação | learn.microsoft.com |
Conversões de CSHTML
Perguntas e Respostas da Comunidade
perguntado por usuáriosAinda não há perguntas - seja o primeiro a perguntar sobre arquivos CSHTML.