1. 程式人生 > >ASP.NET MVC Razor

ASP.NET MVC Razor

-c 表示 lose () inf span model tar oct

MVC項目中多個頁面有相同的東西,框架中提供了幾種解決方案: partialView,Layout,section

一、partialView分布頁

1用戶控件axcs——partial:重復的小模塊

技術分享圖片cshtml頁面代碼 技術分享圖片
@{
    ViewBag.Title = "PartialPage";
    Layout = null;
}

<h3>這裏是一個重復展示的小模塊兒 @Model</h3>
Partial頁面代碼 技術分享圖片
       [ChildActionOnly]//不能被單獨請求
        public
ActionResult Render() { this.ViewBag.Name = "Jacob"; return View(); //return PartialView() //指定分部視圖,在_ViewStatrt.cshtml中指定的Layout會無效 }
Action Render方法代碼 技術分享圖片
@{
    ViewBag.Title = "Render";
    Layout = null;
}

<h2>Render  @ViewBag.Name</h2>
Action Render頁面代碼

執行頁面效果如圖:

技術分享圖片

二、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>&copy; @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