Hva er CSHTML-filformatet?
En .cshtml-fil er en ASP.NET Razor-mal for serversiden som kombinerer C#-kode og HTML-markup i én enkelt kildefil. Formatet ble introdusert i januar 2011 med ASP.NET MVC 3 som en del av Microsofts Razor-visningsmotor.
Symbolet @ er den sentrale syntaktiske markøren: der det vises, bytter Razor-parseren fra HTML-rendringsmodus til C#-eksekveringsmodus. En visning kan inkludere @model-deklarasjoner, @using-navneromsimporter, @functions-blokker, tag-hjelpere, HTML-hjelpere og @section-plasser for en delt _Layout.cshtml-side. Razor-motoren kompilerer filen på serversiden til C#, og deretter til .NET mellomliggende språk (IL); bare den rendrede HTML-koden sendes noen gang til nettleseren - kildekoden i .cshtml blir aldri eksponert for klienter.
Prefikset cs skiller disse filene fra .vbhtml Razor-visninger som bruker Visual Basic i stedet for C#. ASP.NET Core 2.0 introduserte Razor Pages, som også bruker .cshtml, men legger til et @page-direktiv øverst, noe som gjør at filen fungerer som sin egen selvstendige kontroller og visning. For mønstre i enkeltsideapplikasjoner (SPA) bruker Blazor-komponenter filendelsen .razor og erstatter i stor grad .cshtml i nye ASP.NET Core-prosjekter.
.cshtml-filer redigeres i Visual Studio eller Visual Studio Code med C# Dev Kit. Hvis du åpner en direkte i en nettleser, vises rå kildekode i stedet for rendret HTML.
Sikkerhet og trygghet
RISIKO: LOW.cshtml er en kildefil i ren tekst - det er ufarlig å åpne den i et tekstredigeringsprogram eller IDE. Servere bør konfigureres til å blokkere direkte HTTP-tilgang til .cshtml-filer (IIS og Kestrel gjør dette som standard). En feilkonfigurert server som serverer .cshtml som råtekst kan lekke applikasjonslogikk og tilkoblingsstrenger - en sikkerhetsrisiko for serveroperatøren, ikke for personen som leser filen lokalt.
Formatdetaljer
i et nøtteskallProgrammer som åpner CSHTML-filer
Tekniske detaljer
dyp spesifikasjon| Koding | UTF-8 tekst (standard i Visual Studio; andre kodinger støttes) |
| Beholder | Ren tekst - sammenflettet C#-kode og HTML-markup; ingen binær innpakning |
| MIME-type | text/html (rendret utdata til nettleser); text/plain for kildefilen i redigeringsprogrammer |
| Razor-syntaksmarkør | @-tegnet bytter fra HTML-rendringsmodus til C#-eksekveringsmodus |
| Kompilering | Kompilert på serversiden av Razor-motoren til C#, deretter til .NET IL; kildefilen leveres aldri til nettleseren |
| Viktige direktiver | @model, @using, @functions, @section, @page (Razor Pages), @inject |
| Razor-syntaksversjon | v1 (MVC 3, 2011) → v2 (MVC 4) → v3 (MVC 5/Core 1) → Razor 8 (ASP.NET Core 8, 2023) |
| Tag-hjelpere | Støttet fra ASP.NET Core 1.0; erstatter HTML-hjelpere for server-rendret attributtgenerering |
| Layout-system | _Layout.cshtml definerer delt sideoppsett; visninger bruker @section-blokker for å sette inn innhold |
| Tilknyttet OS | Windows (IIS/IIS Express), Linux og macOS (Kestrel, Docker) |
| Razor Pages-variant | @page-direktivet gjør en .cshtml-fil til en selvstendig kontroller+visning (ASP.NET Core 2.0+) |
| Klienteksponering | Kildefilen blir aldri servert til nettleseren; direkte tilgang returnerer råtekst eller en HTTP-feil |
| VB-motstykke | .vbhtml (identisk Razor-syntaks som bruker Visual Basic i stedet for C#) |
| Moderne etterfølgermønster | .razor (Blazor-komponenter) for SPA-lignende applikasjoner i ASP.NET Core |
| Utgitt | 2011 (ASP.NET MVC 3 / Razor syntax v1) |
| Siste versjon | Razor 8 (ASP.NET Core 8.0, November 2023) |
| Spesifikasjon | learn.microsoft.com |
CSHTML-konverteringer
Spørsmål og svar fra fellesskapet
spurt av brukereIngen spørsmål ennå - vær den første til å spørre om CSHTML-filer.