MVC的佈局頁,視圖佈局頁和分佈頁的使用

https://www.cnblogs.com/May-day/p/6610825.html

MVC的佈局頁,視圖佈局頁和分佈頁的使用

在這裏插入圖片描述

二,佈局頁和視圖佈局頁

1》使用方法一

_ViewStart.cshtml

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
}

<h2>視圖佈局頁_ViewStart.cshtml</h2>

_Layout.cshtml

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
</head>
<body>
    <div>
    <h2>佈局頁_Layout.cshtml</h2>
        @RenderBody()
    </div>
</body>
</html>

綜上:

1》當使用這種寫法時:若視圖佈局頁_ViewStart.cshtml不存在或者Layout = “~/Views/Shared/_Layout.cshtml”;指向的頁面錯誤,都會造成視圖的佈局頁(_Layout.cshtml)使用失敗

2》但是視圖佈局頁_ViewStart.cshtml本身的樣式等一樣應用全局,並沒有失效

2》使用方法二(不使用視圖佈局頁_ViewStart.cshtml)

_LayoutNew.cshtml

<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    @RenderSection("Head", false)
</head>
<body>
    <div>
        <h2>
            佈局頁_LayoutNew.cshtml</h2>
        @RenderSection("Main", false)
    </div>
</body>
</html>

hz.cshtml使用模板

@{
    Layout = "~/Views/Shared/_LayoutNew.cshtml";
}
@section Head{}
@section Main{
    <h2>
        hz頁面使用_LayoutNew.cshtml模板</h2>
}

即:這樣應用模板一樣可以成功,在這裏需要注意的是@section Head{}@section Main{}名字需要和佈局頁定義的一樣

三,分部頁的使用(不需要創建action,使用簡單 )

Index.cshtml

<h2>Index頁面</h2>

@Html.Partial("_PartialView")

不需要使用控制器(Controllers)和方法(action),直接可以使用這個頁面的元素

四,Html.RenderPartial與 Html.RenderAction的區別

Html.RenderPartial:這個只會加載頁面,而不會加載Controller中的Action,所以頁面的Model是在當前加載頁面傳過去,如@{Html.RenderPartial(“Menu”,Model.List);},同時Menu頁面接收的類型須和Model.List一致

1》同一個目錄下(意思是當前嵌入頁面和分部頁頁面存放在同一個文件夾下)Html.RenderPartial的使用:@{Html.RenderPartial(“Menu”);}

2》分部頁放在不同目錄中, Html.RenderPartial的使用:@{Html.RenderPartial("~/Views/Home/Menu.cshtml");}

Html.RenderAction:是通過Controller中的Action來調用,所以可以通過Action來返回參數

1》 調用例子: @{Html.RenderAction(“Menu”, “Home”);}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章