ASP.NET MVC Razor
阿新 • • 發佈:2019-03-08
-c 表示 lose () inf span model tar oct
Action Render頁面代碼
MVC項目中多個頁面有相同的東西,框架中提供了幾種解決方案: partialView,Layout,section
一、partialView分布頁
1用戶控件axcs——partial:重復的小模塊
cshtml頁面代碼@{ ViewBag.Title = "PartialPage"; Layout = null; } <h3>這裏是一個重復展示的小模塊兒 @Model</h3>Partial頁面代碼
[ChildActionOnly]//不能被單獨請求 publicAction Render方法代碼ActionResult Render() { this.ViewBag.Name = "Jacob"; return View(); //return PartialView() //指定分部視圖,在_ViewStatrt.cshtml中指定的Layout會無效 }
@{ ViewBag.Title = "Render"; Layout = null; } <h2>Render @ViewBag.Name</h2>
執行頁面效果如圖:
二、Layout布局頁
master——Layout布局頁
MVC項目中如果不寫布局頁,默認布局頁為 Layout = "~/View/Shared/_Layout.cshtml";
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="自定義布局頁代碼utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>@ViewBag.Title - 我的 ASP.NET 應用程序</title> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") </head> <body> <div class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse"> </button> @Html.ActionLink("應用程序名稱", "Index", "Home", new { area = "" }, new { @class = "navbar-brand" }) </div> </div> </div> <div class="container body-content"> <p> ***********************華麗的頭部分隔線****************************** </p> @RenderBody() <hr /> <footer> <p>***********************華麗的底部分隔線******************************</p> <p>© @DateTime.Now.Year - 我的 ASP.NET 應用程序</p> </footer> </div> </body> </html>
效果如下圖:
三、Section
在具體的業務頁面 寫section節點代碼
section節點代碼在布局頁裏寫有
@RenderSection(SectionName, required: false)
最終生成的頁面裏會將cshtml 對應Section節點 替換到layout頁面代碼上
required:true表示頁面必須有該節點,false表示可以有可以沒有
ASP.NET MVC Razor