Tutorials ASP.NET Core MVC Tutorial
Using Bootstrap in MVC Views — Complete Guide
Using Bootstrap in MVC Views — Complete Guide: free step-by-step lesson with examples, common mistakes, and interview tips — part of ASP.NET Core MVC Tutorial on Toolliyo Academy.
On this page
ASP.NET Core MVC Tutorial · Lesson 57 of 200
Using Bootstrap in MVC Views
Getting Started ✓ → Core MVC ✓ → Data & Security → Production → Career
Intermediate · 5 — Database & Auth · ~10 min · Section 5: Models & Data Passing
What is this?
A layout is a master page — usually Views/Shared/_Layout.cshtml — with shared header, footer, and nav. Individual pages fill the middle via @RenderBody().
Why should you care?
Without a layout you would copy the same navbar HTML on 100 pages. Change the logo once in _Layout and every page updates.
See it live — copy this example
Create an MVC project (dotnet new mvc), add the code, and run dotnet run.
@* _Layout.cshtml *@
<!DOCTYPE html>
<html>
<body>
<nav><a href="/">ShopNest</a></nav>
<main>@RenderBody()</main>
<footer>© 2026 ShopNest</footer>
@await RenderSectionAsync("Scripts", required: false)
</body>
</html>
@* Index.cshtml *@
@{ Layout = "_Layout"; }
<h1>Welcome</h1>
Run Example »
Edit the code and click Run — like W3Schools Try it Yourself.
What happened?
- _ViewStart.cshtml can set Layout = "_Layout" for all views automatically.
- RenderBody is where page content goes.
- Scripts section loads page-specific JS at the bottom.
Try it yourself
- Edit _Layout.cshtml navbar text and refresh any page.
- Add a footer line in the layout — confirm all pages show it.
- Create a Scripts section in one view with a console.log script.
- Change text or labels in the example and run again — watch the browser update.
- Break the code on purpose (remove a semicolon), read the error message, then fix it.
Remember
_Layout.cshtml wraps every page. @RenderBody() is the page content slot. _ViewStart.cshtml sets default layout.