In article, I have shared a way to create a Layout Razor and ViewStart in ASP.NET MVC 5.
Views/Shared
You need to create a shared folder, "Shared" in the Views directory.
Go Views/Shared directory and create new _LayoutPage1.cshtml file and write the following below code.
- <!DOCTYPE html>
-
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>@ViewBag.Title</title>
- </head>
- <body>
- <div>
- @RenderBody()
- </div>
- </body>
- </html>
The @RenderBody()
Use display content in multiple controllers to View.
Example you can have a fixed header and footer in the page. Only change will be the content of the RenderBody() called in the code.
- <html>
- <head>
- <meta name="viewport" content="width=device-width" />
- <title>@ViewBag.Title</title>
- </head>
- <body>
- <div class="header">
- <!--code header fixed-->
- </div>
- <div>
- @RenderBody()
- </div>
- <div class="footer">
- <!--code footer fixed-->
- </div>
- </body>
- </html>
So you have fixed the (header/footer) for the website.
Okay, you need using _LayoutPage1.cshtml, so you to Views/Home/index.cshtml. Open it, pass the following below code.
- @{
- ViewBag.Title = "Index";
- Layout = "~/Views/Shared/_LayoutPage1.cshtml";
- }
_ViewStart.cshtml used to define the layout for the website. You can set the layout settings as well, if HomeController is using Layout.
_LayoutHome.cshtml or AdminController is _LayoutAdmin.cshtml
-
- @{
- Layout = "~/Views/Shared/_LayoutPage1.cshtml";
- }
You can configuration _ViewStart.cshtml the following below code.
- @{
-
- string CurrentName = Convert.ToString(HttpContext.Current.Request.RequestContext.RouteData.Values["Controller"]);
- string clayout = "";
- switch (CurrentName)
- {
- case "Home":
- clayout = "~/Views/Shared/_LayoutHome.cshtml";
- break;
- default:
-
- clayout = "~/Views/Shared/_LayoutAdmin.cshtml";
- break;
- }
- Layout = clayout;
-
- }
This gives you an idea, how to use a Razor layout in various pages.
The previous article,
|
|
|
|
|
|
|
|
|
|
Ch?c nang phát âm gi?i h?n ? 200 ký t?