MVC項目中如果有公共部分的代碼就可以單獨拿出來作為控件來用(比如頭部和底部代碼)。跟ASP.NET中的ASCX實現的效果一樣,但MVC比它方便的多。
一.@Html.Action的用法
@Html.Action有很多的構造方法在這里我只說一種也是經常用到的, @Html.Action("視圖","控制器")的用法。
@Html.Action有很多的構造方法在這里我只說一種也是經常用到的, @Html.Action("視圖","控制器")的用法。
首先我先創建一個控制器DaohangController.cs再在該控制器里添加一個視圖方法RightDH,同時在Views文件夾里添加相應的cshtml頁面。
這個時候就創建好了一個可以運行的
RightDH頁面,
可以直接訪問(/Daohang/RightDH),看一下是否可以正常的訪問。如果可以正常的訪問,看下一步,
可以直接訪問(/Daohang/RightDH),看一下是否可以正常的訪問。如果可以正常的訪問,看下一步,
在你想要調用的頁面調用
RightDH頁面(代碼:@Html.Action("RightDH", "Daohang")),這個時候運行你調用該視圖的頁面,
就會看到
RightDH頁面的信息已經被調用過來了。
是不是很簡單,呵呵
是不是很簡單,呵呵
二._ViewStart.cshtml文件是干什么用的?
說到這兒我說一下_ViewStart.cshtml這個文件,在MVC里都會看到這個頁面的存在,這個是頁面是不可訪問的,但是你訪問MVC里的每個頁面的時候,
說到這兒我說一下_ViewStart.cshtml這個文件,在MVC里都會看到這個頁面的存在,這個是頁面是不可訪問的,但是你訪問MVC里的每個頁面的時候,
程序都會先訪問_ViewStart.cshtml頁面然后才是你要訪問的頁面。這就有一個好處,一些公共的html代碼可以放到_ViewStart.cshtml文件里。
然后就是母版頁,引用了母板頁也就繼承了母板頁的所有代碼,所以你可以把寫好的頭部和底部代碼寫成控件的方式,然后在母板頁里面調用該控件(用 @Html.Action調用控件)
然后就是母版頁,引用了母板頁也就繼承了母板頁的所有代碼,所以你可以把寫好的頭部和底部代碼寫成控件的方式,然后在母板頁里面調用該控件(用 @Html.Action調用控件)
然后讓其他頁面繼承母板頁,這樣就區分開公共部分和非公共部分。也達到了代碼重用的效果。
那么怎么繼承母板頁呢,有兩個辦法:1就是在創建頁面的時候直接繼承。2.直接在頁面的頂部加上
@{
Layout = "~/Views/Shared/HeadFoot.cshtml";
}
紅色部分就是母板頁地址,在創建的頁面里的內容都會替換到母板頁里@RenderBody()的部分
那么怎么繼承母板頁呢,有兩個辦法:1就是在創建頁面的時候直接繼承。2.直接在頁面的頂部加上
@{
Layout = "~/Views/Shared/HeadFoot.cshtml";
}
紅色部分就是母板頁地址,在創建的頁面里的內容都會替換到母板頁里@RenderBody()的部分