中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

愛上MVC3系列~Razor模板頁(ye)

回到目錄

Razor引擎與業(ye)面元素組織更加清晰,沒(mei)有過濾(lv)的<%%>標題,它不再需要什么(me)結(jie)束(shu)標記,使用(yong)@就可(ke)以實現一個(ge)完(wan)整(zheng)的綁定,閉(bi)合<%%>這件事人家razor已經(jing)為咱做好了(le),呵(he)呵(he)。

Razor模(mo)板(ban)頁:它使(shi)我們不用(yong)在使(shi)用(yong)master模(mo)板(ban)了(le),而razor模(mo)板(ban)引擎代碼更簡(jian)潔,清晰,下面我們來具體說一(yi)下在模(mo)板(ban)中的出現的元素:

 

一 @Url.Content:是可以加載(zai)CSS和(he)JS等(deng)文件(jian),使用Url.Content可以為URL地址進行(xing)統一的管理和(he)設置。

 

1 <head>
2     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
3     <title>@ViewBag.Title</title>
4     <link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
5     <script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script>
6 </head>

 

二 @RenderSection("Head", false):在模板頁中我們會定義一些全局性的CSS,JS等文件,而與具體頁面相關的CSS和JS文件及代碼,我們可以保留在@RenderSection("Head", false)中,它能夠
讓頁面通過@section Head{}的形式,將個性化的代碼呈現,其中參數false表示,具體頁面可以不去實現這個section Head塊。

 

1 <body>
2     @RenderSection("Head", false);
3     <!-- 頁面中可以沒有Head節點-->
4     <div class="page">

 

調用:

1 @section Head{
2     <script>
3         alert("Hello MVC3");
4     </script>
5 }
三  @Html.Partial("_LogOnPartial"):分(fen)部(bu)視(shi)圖,事(shi)實上就是MVC2中的ASCX視(shi)圖,一些公用(yong)模(mo)塊(kuai)可(ke)以由它來(lai)呈(cheng)現
1  <div id="logindisplay">
2     @Html.Partial("_LogOnPartial")
3  </div>

四  @RenderBody():用來存儲具體的頁面內容,頁面所有正文內容都被自己放到了@RenderBody()容器里
1   <div id="main">
2             @RenderBody()
3             <div id="footer">
4             </div>
5   </div>

五 @RenderPage("~/Views/Shared/Foot.cshtml") :引入一個URL地址的頁面

六(liu) _ViewStart.cshtml文件,它會在建立view時(shi)自己綁定到view中去,當(dang)然在view里通過(guo)下(xia)面語句設置自己的模(mo)板頁:

@{
    ViewBag.Title = "Test"; //設置頁(ye)面標題(ti)
    Layout = "~/Views/Shared/_GreenLayout.cshtml"; //設置(zhi)頁面(mian)模(mo)板(ban),如果不設置(zhi)本屬性則(ze)使用_ViewStart.cshtml里的模(mo)板(ban)頁
}

七 頁(ye)面Model綁(bang)定更加直觀(guan)和清(qing)晰

1 @model TEstMv3.Models.PersonLogOn
2 @{
3     ViewBag.Title = "LogOn";
4 }

八 ViewBag更靈活,它是MVC3中新加入的成員,與ViewData和TempData不同,它是一個dynamic類型的對象,并且內部規定了一些固定的屬性如:ViewBag.Title它就代碼頁面

的標題,MVC3會自(zi)動把它綁定到<title>;</title>標記中。看它是如(ru)何實(shi)現(xian)的:

 1    [Dynamic]
 2         public object ViewBag
 3         {
 4             [return: Dynamic]
 5             get
 6             {
 7                 Func<ViewDataDictionary> viewDataThunk = null;
 8                 if (this._dynamicViewData == null)
 9                 {
10                     if (viewDataThunk == null)
11                     {
12                         viewDataThunk = () => this.ViewData;
13                     }
14                     this._dynamicViewData = new DynamicViewDataDictionary(viewDataThunk);
15                 }
16                 return this._dynamicViewData;
17             }
18         }

從代(dai)碼中我(wo)們不(bu)難發(fa)現,ViewBag不(bu)公是一(yi)個dynamic類型,而且它還把(ba)當前ViewData里的內容也追(zhui)加了過來,那下面的使用是正確的,呵呵。

1  public ActionResult Index()
2   {
3    ViewData["author"] = "張占嶺(ling)";
4  }1 @ViewBag.author //比ViewData["author"]這種形式更簡

在(zai)頁面上(shang)直(zhi)接這樣輸出:

1 @ViewBag.author //比ViewData["author"]這種形式(shi)更(geng)簡(jian)潔

下一講,將介紹(shao)在(zai)具體的頁(ye)面中程序表現上的語(yu)法,介請(qing)收看。

回到目錄

posted @ 2012-06-11 11:27  張占嶺  閱讀(7295)  評論(5)    收藏  舉報