Vad är filformatet CSHTML?
En .cshtml-fil är en ASP.NET Razor-webbmall på serversidan som kombinerar C#-kod och HTML-kod i en enda källfil. Formatet introducerades i januari 2011 med ASP.NET MVC 3 som en del av Microsofts Razor-vymotor.
Tecknet @ är den centrala syntaktiska markören: varhelst det förekommer växlar Razor-parsern från HTML-renderingsläge till C#-exekveringsläge. En vy kan innehålla @model-deklarationer, @using-namnrymdsimport, @functions-block, tag-helpers, HTML-helpers och @section-platser för en delad _Layout.cshtml-sida. Razor-motorn kompilerar filen på serversidan till C#, sedan till .NET-mellanliggande språk (IL); endast den renderade HTML-koden skickas någonsin till webbläsaren - källkoden i .cshtml exponeras aldrig för klienter.
Prefixet cs skiljer dessa filer från .vbhtml Razor-vyer som använder Visual Basic istället för C#. ASP.NET Core 2.0 introducerade Razor Pages, som också använder .cshtml men lägger till ett @page-direktiv högst upp, vilket gör att filen fungerar som sin egen fristående kontroller och vy. För mönster med ensidiga applikationer (SPA) använder Blazor-komponenter filtillägget .razor och ersätter i hög grad .cshtml i nya ASP.NET Core-projekt.
.cshtml-filer redigeras i Visual Studio eller Visual Studio Code med C# Dev Kit. Om man öppnar en fil direkt i en webbläsare visas den råa källkoden snarare än renderad HTML.
Säkerhet & trygghet
RISK: LOW.cshtml är en källfil i vanlig text - att öppna den i en textredigerare eller IDE är ofarligt. Servrar bör konfigureras för att blockera direkt HTTP-åtkomst till .cshtml-filer (IIS och Kestrel gör detta som standard). En felkonfigurerad server som skickar .cshtml som råtext kan läcka applikationslogik och anslutningssträngar - en säkerhetsrisk för serveroperatören, inte för personen som läser filen lokalt.
Formatdetaljer
i ett nötskalProgram som öppnar CSHTML-filer
Tekniska detaljer
djup specifikation| Kodning | UTF-8-text (standard i Visual Studio; andra kodningar stöds) |
| Behållare | Vanlig text - varvad C#-kod och HTML-kod; inget binärt omslag |
| MIME-typ | text/html (renderad utdata till webbläsare); text/plain för källfilen i redigerare |
| Razor-syntaxmarkör | Tecknet @ växlar från HTML-renderingsläge till C#-exekveringsläge |
| Kompilering | Kompileras på serversidan av Razor-motorn till C#, sedan till .NET IL; källfilen levereras aldrig till webbläsaren |
| Viktiga direktiv | @model, @using, @functions, @section, @page (Razor Pages), @inject |
| Razor-syntaxversion | v1 (MVC 3, 2011) → v2 (MVC 4) → v3 (MVC 5/Core 1) → Razor 8 (ASP.NET Core 8, 2023) |
| Tag-helpers | Stöds från ASP.NET Core 1.0; ersätter HTML-helpers för serverrenderad attributgenerering |
| Layoutsystem | _Layout.cshtml definierar delad sidstruktur; vyer använder @section-block för att injicera innehåll |
| Associerat OS | Windows (IIS/IIS Express), Linux och macOS (Kestrel, Docker) |
| Razor Pages-variant | Direktivet @page gör en .cshtml-fil till en fristående kontroller+vy (ASP.NET Core 2.0+) |
| Klientexponering | Källfilen skickas aldrig till webbläsaren; direkt åtkomst returnerar råtext eller ett HTTP-fel |
| VB-motsvarighet | .vbhtml (identisk Razor-syntax som använder Visual Basic istället för C#) |
| Modernt efterföljarmönster | .razor (Blazor-komponenter) för applikationer av SPA-typ i ASP.NET Core |
| Släppt | 2011 (ASP.NET MVC 3 / Razor syntax v1) |
| Senaste version | Razor 8 (ASP.NET Core 8.0, November 2023) |
| Specifikation | learn.microsoft.com |
CSHTML-konverteringar
Frågor & svar
frågat av användareInga frågor än - bli den första att fråga om CSHTML-filer.