ASP.NET MVC3模板頁的使用(2)

PC教程網】關于ASP.NET MVC3模板頁的使用(2)_ASP.NET介紹:本文為大家演示下MVC3中怎樣使用模板頁,在傳統的webform設計模式中,我們使用masterpage作為模板頁,在MVC3 razor視圖設計中,我們使用另一種方式作為模板頁。 新建一個MVC3項目,在解決,下面小編為您針對ASP.NET MVC3模板頁的使用(2)進行分享:

本文為大家演示下MVC3中怎樣使用模板頁,在傳統的webform設計模式中,我們使用masterpage作為模板頁,在MVC3 razor視圖設計中,我們使用另一種方式作為模板頁。

新建一個MVC3項目,在解決方案資源管理中,我們可以看到VIEWS文件夾下面有一個Shared文件夾。在Shared文件夾里面有一個_Layout.cshtml頁面。這個就是項目中默認的模板頁面。如下圖所示 :

       

1.新建內容頁
        內容頁在MVC3中也叫做視圖布局頁,可以右鍵選中視圖文件夾,通過添加視圖來添加內容頁,然后選擇相應的模板。下面就是我們創建的內容頁ViewPageOne.cshtml

       使用模板頁的頁面,會自動在頁面中生成代碼。來指定模板頁,使用Layout來指定具體的模板頁。如果內容頁中沒有Layout屬性,則使用的是默認的模板頁

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout = "~/Views/Shared/_Layout.cshtml"; 
} 
 
<h2>ViewPageOne</h2> 

如果Layout指定為null,則表示不使用模板頁

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout = null; 
} 

 2.新建模板頁

      右鍵選擇Shared文件,然后在菜單中選擇添加 新建項,彈出添加新項對話框,然后選擇MVC3布局頁,這樣就添加完成了布局頁,下面的我們添加的布局頁_LayoutPageOne.cshtml

    

3.為某個文件單獨指定模板頁
     假如某個頁面不想使用默認的模板頁,可以單獨為其指定模板頁,下面的代碼把內容頁的模板頁指定為剛創建的模板頁_LayoutPageOne.cshtml

@{ 
 ViewBag.Title = "ViewPageOne"; 
 Layout="~/Views/Shared/_LayoutPageOne.cshtml"; 
} 
<h2>ViewPageOne</h2> 

4.為某個視圖文件夾指定模板頁
      假如想讓一個Controller下面的所有視圖使用同一個模板文件,可以在該Controller對應的試圖文件夾下面創建一個_ViewStart.cshtml文件,然后在_ViewStart.cshtml里面指定所使用的模板頁

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

這樣就可以把一個controller下面的視圖指定為使用一個模板文件

5.頁面不使用模板頁
     如果一個內容頁面不想使用模板頁,可以把_Layout設置為null
     也可以在添加視圖頁面的時候不選擇模板。
 
[email protected]()
    @RenderBody()在模板頁中使用表示內容頁在模板中的位置。當創建具有模板頁的內容頁的時候,內容頁就呈現在模板頁中@RenderBody()所在的位置,一個模板頁中只能有一個@RenderBody().
 
[email protected]
  @RenderSection用于在模板布局中定義一個區域,在內容頁可以定義一些內容來填充這個區域,例如內容頁中引用的JS文件,可以填充到模板頁的section位置。每個內容頁的單獨一些信息,可以在模板頁中這個區域顯示。
  @RenderSection有兩個參數,第一個參數用于定義section的名稱,第2個參數是布爾類型,如果為TRUE,表示內容頁必須定義這個section,如果為false,則表示內容頁可定義section,也可以不定義。

模板頁:

<!DOCTYPE html> 
 
<html> 
<head> 
 <title>歡迎 @ViewBag.Title</title> 
</head> 
<body> 
 <p>第2個模板頁</p> 
 <div> 
  @RenderBody() 
 </div> 
  <div> 
   備注: 
   @RenderSection("Remark", false); 
  </div> 
</body> 
</html> 

內容頁:

@{ 
 ViewBag.Title = "主頁"; 
} 
 
<h2>@ViewBag.Message</h2> 
<p> 
 若要了解有關 ASP.NET MVC 的更多信息,請訪問 <a href="http://asp.net/mvc" title="ASP.NET MVC 網站">http://asp.net/mvc</a>。 
</p> 
@section Remark 
{ 
 我是主頁 
 } 
<p>歡迎</p> 

[email protected]
  @RenderPage用于表示在一個頁面中呈現另一個頁面的內容.參數指定要呈現的網頁的位置。
  我們在Shared文件夾下面新建一個footer.cshtml文件,然后里面寫上版權信息,然后在模板頁中開辟一塊位置用來呈現footer頁面。

<!DOCTYPE html> 
 
<html> 
<head> 
 <title>歡迎 @ViewBag.Title</title> 
</head> 
<body> 
 <p>第2個模板頁</p> 
 <div> 
  @RenderBody() 
 </div> 
  <div> 
   備注: 
   @RenderSection("Remark", false); 
  </div> 
 <footer> 
 
  @RenderPage("~/Views/Shared/footer.cshtml") 
 </footer> 
</body> 
</html> 

 [email protected]()與Html.RenderPartial()
   [email protected]()與Html.RenderPartial()這兩個方法可以用來輸出一個分部頁,右鍵添加新建項,選擇MVC3分部頁,就可以添加一個分部頁,相當于一個用戶控件,
這時候就可以使用者兩個方法來輸出分部頁的內容,當然,這兩個方法也可以直接輸出視圖頁和內容頁。
   @Html.Partial()的參數為用戶控件名稱,也就是分部頁名稱,返回值為string類型,可以直接輸出。
   @Html.RenderPartial()的參數也為用戶控件名稱,返回值為VOID,調用的時候直接把內容輸出到Response中。
  用法如下:

<div id="logindisplay"> 
    @Html.Partial("_PartialLogin") 
    @{ 
     Html.RenderPartial("_PartialLogin"); 
     } 
     
   </div> 

以上就是ASP.NET MVC3模板頁的使用方法

相關教程

ASP.NET中 PlaceHolder 控件的使用方法

使用 PlaceHolder 控件可以將空容器控件放到網頁中,然后在運行時動態添加、刪除或遍歷各子元素。該控件只呈現其子元素;它本身并沒有基于 HTML 的輸出。 在實際使用過程中可以向P …

ASP.NET筆記之Calender的使用說明

ASP.NET筆記之Calender的使用說明

1、介紹 (1、在Calender中,所有可選擇的符號會顯示下劃線,這是因為它們在瀏覽器都會呈現為鏈接。 如果讓用戶可以選擇某天、月、周,必須設置SelectionMode屬性(Day、 DayWeek、DayWee …

ASP.NET筆記之CKEditor的使用方法

ASP.NET筆記之CKEditor的使用方法

1、CKEditor原名FckEditor,著名的HTML編輯器,可以在線編輯HTML內容。自己人用CKEditor,網友用UBBEditor。 配置參考文檔,主要將ckeditor中的(adapters、images、lang、plugins、skins、themes、ckeditor. …

ASP.NET Razor模板引擎中輸出Html的兩種方式

本文實例講述了ASP.NET Razor模板引擎中輸出Html的兩種方式。分享給大家供大家參考,具體如下: Razor中所有的Html都會自動編碼,這樣就不需要我們手動去編碼了(安全),但在需要輸出 …

ASP.NET在線文本編輯控件的使用(第6節)

ASP.NET在線文本編輯控件的使用(第6節)

首先了解在線文本編輯環境FCKeditor的使用方法,然后使用FCKeditor實現設計一個發表日志文章的頁面。 學習內容 1、將FCKeditorV2.dll文件添加到工具箱。 右擊工具箱中的任一控件組,在彈出 …

asp.net GridView中超鏈接的使用(帶參數)

方法1.使用a標簽, 前臺: 復制代碼 代碼如下: a href='%# "OrigImageShow.aspx?id=1gt;' id="tb_search" runat="server" target="_blank"彈出/a a href='Javascript:alert("%# OrigImageShow.aspx?image_id=" + Eval("ID")%")'彈出/a 使 …

thinkPHP的Html模板標簽使用方法

注意:在使用如html:select /等標簽之前,必須要引入TP的標簽庫:tagLib name="html" / 如果我們現在需要一個select下拉菜單項,那么在ThinkPHP中我們可以這樣做。 1、在Action控制器的方法中獲取 …

ASP.NET MVC3 SEO優化:利用Routing特性提高站點權重

簡介 我們在開發互聯網程序的時候,有個很重要的事情就是做搜索引擎優化(SEO),我們都知道ASP.NET MVC程序提供了友好的URL以及永久重定向的支持,這些友好的URL是利用Routing系統的特 …

asp.net 文件下載的通用方法

在asp.net里,你簡單在Response中寫文件流的話,可能被瀏覽器誤讀了,比如說圖片或是.htm,會在被瀏覽器打開時直接呈現出來。而需求卻是,彈出保存的面板提示用戶保存。 那么,以下幾 …

内蒙古十一选五任五推荐号