ASP.NET Core  

CSHTML (Razor) Cheat Sheet — Quick Reference for ASP.NET Core

Here is a clean, developer-friendly CSHTML (Razor) Cheat Sheet — perfect for quick reference. This cheat sheet covers syntax, data binding, tag helpers, loops, conditions, forms, partials, layout, and more.

1. Razor Syntax Basics

Inline C#

@DateTime.Now
@Model.Name

Code Block

@{
    var title = "Product List";
}
<h2>@title</h2>

2. Model Binding

Strongly Typed View

@model Product
<h3>@Model.Name</h3>

List Model

@model IEnumerable<Product>

@foreach (var p in Model)
{
    <p>@p.Name - @p.Price</p>
}

3. Razor Expressions

Condition

@if (Model.Stock > 0)
{
    <span>In Stock</span>
}
else
{
    <span>Out of Stock</span>
}

Switch

@switch (Model.Category)
{
    case "Electronics":
        <span>Electronics</span>
        break;
    default:
        <span>Other</span>
        break;
}

4. Loops

@for (int i = 0; i < products.Count; i++)
{
    <p>@products[i].Name</p>
}

@foreach (var p in Model)
{
    <p>@p.Name</p>
}

@while (condition)
{
    <p>Running…</p>
}

5. Razor Comments

@* This will not appear in HTML *@

6. HTML Helpers

@Html.TextBoxFor(m => m.Name)
@Html.LabelFor(m => m.Price)
@Html.DropDownListFor(m => m.CategoryId, Model.Categories)

7. Tag Helpers (Most Important)

Anchor (link)

<a asp-action="Details" asp-route-id="@item.Id">View</a>

Form Tag Helper

<form asp-action="Create" method="post">

Input Tag Helper

<input asp-for="Name" class="form-control" />

Validation Tag Helpers

<span asp-validation-for="Name" class="text-danger"></span>
<div asp-validation-summary="All"></div>

Dropdown

<select asp-for="CategoryId" asp-items="Model.CategoryList"></select>

8. Layout (Master Page Equivalent)

Use Layout

@{
    Layout = "_Layout";
}

Render Body

In _Layout.cshtml:

<body>
    @RenderBody()
</body>

Optional Section

@section Scripts {
    <script src="app.js"></script>
}

9. Partial Views

Render Partial View

@await Html.PartialAsync("_ProductCard", item)

Render Component (Advanced)

@await Component.InvokeAsync("CartSummary")

10. TempData, ViewData, ViewBag

ViewData

@ViewData["Title"]

ViewBag

@ViewBag.Message

TempData

@TempData["Success"]

11. Anti-forgery Token

<form method="post">
    @Html.AntiForgeryToken()

ASP.NET Core automatically generates in <form asp-action>.

12. Using C# Classes in Razor

@using SampleMVCCoreProject.Models
@model Product

13. Render Scripts and Styles

@section Styles {
    <link rel="stylesheet" href="~/css/products.css" />
}

@section Scripts {
    <script src="~/js/products.js"></script>
}

14. Razor Shortcuts

SyntaxMeaning
@:Write plain text
@()Inline C# as expression
@{}Code block
@* *@Razor comment

Example:

@:This is plain text

15. Useful Directives

@model Product
@using MyProject.Models
@inject IProductService ProductService
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers

16. AJAX in CSHTML (No UpdatePanel)

$.get("/Product/GetStock/5", function (data) {
    $("#stockDiv").html(data);
});

17. Render JSON in Razor

<script>
    var product = @Html.Raw(Json.Serialize(Model));
</script>

18. Raw HTML Rendering

@Html.Raw(Model.Description)

19. Using JavaScript with Razor Variables

<script>
    let price = "@Model.Price";
</script>

20. Bootstrap-friendly Razor Table Example

<table class="table table-striped">
@foreach (var item in Model)
{
    <tr>
        <td>@item.Name</td>
        <td>@item.Category</td>
        <td>@item.Price</td>
        <td>
            <a asp-action="Details" asp-route-id="@item.Id" class="btn btn-primary btn-sm">View</a>
        </td>
    </tr>
}
</table>