Qu'est-ce que le format de fichier CSHTML ?
Un fichier .cshtml est un modèle web côté serveur ASP.NET Razor qui combine du code C# et du balisage HTML dans un seul fichier source. Le format a été introduit en janvier 2011 avec ASP.NET MVC 3 dans le cadre du moteur de vue Razor de Microsoft.
Le caractère @ est le marqueur syntaxique central : partout où il apparaît, l'analyseur Razor passe du mode rendu HTML au mode exécution C#. Une vue peut inclure des déclarations @model, des imports d'espaces de noms @using, des blocs @functions, des « tag helpers », des « HTML helpers » et des emplacements @section pour une page de mise en page partagée _Layout.cshtml. Le moteur Razor compile le fichier côté serveur en C#, puis en langage intermédiaire .NET (IL) ; seul le HTML rendu est envoyé au navigateur - la source .cshtml n'est jamais exposée aux clients.
Le préfixe cs distingue ces fichiers des vues Razor .vbhtml qui utilisent Visual Basic au lieu de C#. ASP.NET Core 2.0 a introduit les Razor Pages, qui utilisent également .cshtml mais ajoutent une directive @page au sommet, permettant au fichier d'agir comme son propre contrôleur et vue autonome. Pour les modèles d'applications à page unique (SPA), les composants Blazor utilisent l'extension .razor et remplacent largement le .cshtml dans les nouveaux projets ASP.NET Core.
Les fichiers .cshtml sont édités dans Visual Studio ou Visual Studio Code avec le C# Dev Kit. Ouvrir un tel fichier directement dans un navigateur affiche le code source brut plutôt que le HTML rendu.
Sécurité et sûreté
RISQUE : LOW.cshtml est un fichier source en texte brut - l'ouvrir dans un éditeur de texte ou un IDE est sans danger. Les serveurs doivent être configurés pour bloquer l'accès HTTP direct aux fichiers .cshtml (IIS et Kestrel le font par défaut). Un serveur mal configuré qui servirait le .cshtml comme texte brut pourrait divulguer la logique de l'application et les chaînes de connexion - un risque de sécurité pour l'opérateur du serveur, pas pour la personne lisant le fichier localement.
Détails du format
en brefProgrammes qui ouvrent les fichiers CSHTML
Détails techniques
spécifications approfondies| Encodage | Texte UTF-8 (par défaut dans Visual Studio ; autres encodages pris en charge) |
| Conteneur | Texte brut - code C# et balisage HTML entrelacés ; pas de conteneur binaire |
| Type MIME | text/html (rendu envoyé au navigateur) ; text/plain pour le fichier source dans les éditeurs |
| Marqueur de syntaxe Razor | Le caractère @ bascule du mode rendu HTML au mode exécution C# |
| Compilation | Compilé côté serveur par le moteur Razor en C#, puis en .NET IL ; le fichier source n'est jamais livré au navigateur |
| Directives clés | @model, @using, @functions, @section, @page (Razor Pages), @inject |
| Version de syntaxe Razor | v1 (MVC 3, 2011) → v2 (MVC 4) → v3 (MVC 5/Core 1) → Razor 8 (ASP.NET Core 8, 2023) |
| Tag helpers | Pris en charge depuis ASP.NET Core 1.0 ; remplacent les HTML helpers pour la génération d'attributs rendus par le serveur |
| Système de mise en page | _Layout.cshtml définit le cadre de page partagé ; les vues utilisent des blocs @section pour injecter du contenu |
| OS associé | Windows (IIS/IIS Express), Linux et macOS (Kestrel, Docker) |
| Variante Razor Pages | La directive @page fait d'un fichier .cshtml un contrôleur+vue autonome (ASP.NET Core 2.0+) |
| Exposition client | Le fichier source n'est jamais servi au navigateur ; un accès direct renvoie le texte brut ou une erreur HTTP |
| Contrepartie VB | .vbhtml (syntaxe Razor identique utilisant Visual Basic au lieu de C#) |
| Modèle successeur moderne | .razor (composants Blazor) pour les applications de type SPA dans ASP.NET Core |
| Publié | 2011 (ASP.NET MVC 3 / Razor syntax v1) |
| Dernière version | Razor 8 (ASP.NET Core 8.0, November 2023) |
| Spécification | learn.microsoft.com |
Conversions CSHTML
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers CSHTML.