layout view in asp.net mvc
In ASP.NET MVC, a layout view is used to define the common structure or design elements of a set of views, such as a website's header, footer, and navigation menu. The layout view acts as a container for other views, providing a consistent look and feel across multiple pages.
Here's how to create a layout view in ASP.NET MVC:
Create a new layout view. This can be done by right-clicking on the "Views" folder in the Solution Explorer, selecting "Add", and then "Layout Page". Alternatively, you can create a new Razor view and specify the layout using the
@{ Layout = "path/to/layout.cshtml"; }
directive at the top of the view.In the layout view, define the common HTML structure or design elements that you want to use across multiple views. For example, you could include a header, footer, and navigation menu.
In the layout view, use the
@RenderBody()
method to specify where the content of the child view should be rendered. For example:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>@ViewBag.Title</title> </head> <body> <header> <!-- header content goes here --> </header> <nav> <!-- navigation menu goes here --> </nav> <div class="container"> @RenderBody() </div> <footer> <!-- footer content goes here --> </footer> </body> </html>
- In each child view, specify the layout by using the
@{ Layout = "path/to/layout.cshtml"; }
directive at the top of the view. For example:
@{ Layout = "~/Views/Shared/_Layout.cshtml"; } # Welcome to my website <p>This is the home page.</p>
When the child view is rendered, its content will be inserted into the @RenderBody()
call in the layout view. This will produce a complete HTML page that includes the common design elements specified in the layout view.
Note that you can also use sections to define blocks of content in the child view that can be rendered in specific places within the layout view, such as in the header or footer. This can be done using the @RenderSection()
method in the layout view and the @section
directive in the child view. For more information on using sections in ASP.NET MVC, see the official documentation.